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 中,但也没有帮助。
在守护进程中配置记录器怎么样?这对我有用:
#!/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)