Python日志守护进程销毁文件句柄
我的脚本在记录日志到文件时一切正常,但一旦我尝试把它放到后台运行,文件的连接就会关闭,即使我使用了filesPreserve这个选项。有什么简单的方法可以改进这个问题,让我的日志记录器在后台正常工作吗?
#!/usr/bin/env python
from socket import *
import sys, time, logging
import daemon
context = daemon.DaemonContext()
logger = logging.getLogger('audit')
hdlr = logging.FileHandler('/mnt/audit.log')
formatter = logging.Formatter('%(asctime)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.WARNING)
context.filesPreserve = [hdlr]
with context:
HOST = ''
PORT = 50007
ADDR = (HOST,PORT)
BUFSIZE = 4096 #reasonably sized buffer for data
serv = socket( AF_INET,SOCK_STREAM)
serv.bind((ADDR))
serv.listen(5) #5 is the maximum number of queued connections we'll allow
while True:
conn, addr = serv.accept()
sys.stdout.write('accepted connection')
while True:
data = conn.recv( 1024 )
if not data:
break
else:
logger.error ("-" * 20)
logger.error(data)
if "DONE" == data:
break
conn.close()
1 个回答
1