Python-daemon: keep logging

Hyp*_*vil 3 python python-2.7

I have a script that logs a bit of data to disk:

logging.basicConfig(filename='davis-debug.log',level=logging.DEBUG) logging.basicConfig(filename='davis-error.log',level=logging.ERROR) logging.basicConfig(filename='davis-error.log',level=logging.WARNING) logging.basicConfig(filename='davis-error.log',level=logging.CRITICAL)

当我像这样使用 python-daemon 时,日志记录停止。

try:
  with daemon.DaemonContext():
  station = VantageProStation()
  station.run()

except KeyboardInterrupt:
  logging.critical('Stopping user aborted with CTRL+C')
pass
Run Code Online (Sandbox Code Playgroud)

我尝试过 file_preserve,但 logging.basicConfig 不返回流。
我也不能使用files_preserve 传递多个流..?
我当然希望我的日志记录继续,我试图将日志定义放在我的类init 中,但也没有帮助。

Jul*_*ard 6

在守护进程中配置记录器怎么样?这对我有用:

#!/usr/bin/env python

import daemon
import logging
import logging.handlers
from time import sleep
from datetime import datetime

def time_logging_daemon():
    logger = logging.getLogger('time_logging_daemon')
    logger.addHandler(logging.handlers.SysLogHandler(address='/dev/log'))
    logger.setLevel(logging.INFO)
    while True:
        logger.info(datetime.now())
        sleep(1)

with daemon.DaemonContext():
    time_logging_daemon()
Run Code Online (Sandbox Code Playgroud)