python阻止日志记录将日志写入syslog

时间:2016-12-12 03:29:59

标签: python python-2.7

这是我的日志记录设置。它工作正常,我可以找到登录test.log但我也发现登录/var/log/messages看起来像

Dec  9 16:13:39 ip-10-80-48-6 python: DEBUG:__main__:Test Log

我不想登录/var/log/messages也许其他路径更好因为日志太大

import logging
logger = logging.getLogger(__name__)
logging.basicConfig()
logger.setLevel(logging.DEBUG)

handler = logging.handlers.RotatingFileHandler('test.log', "a", maxBytes=50000000, backupCount=10)
handler.setLevel(logging.DEBUG)
handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))

logger.addHandler(handler)

#UPDATE

此代码在我的扭曲服务中,我使用systemctl启动此服务

2 个答案:

答案 0 :(得分:0)

请参阅以下链接。用例子解释。

https://docs.python.org/2.7/howto/logging-cookbook.html#logging-to-multiple-destinations

https://docs.python.org/3/howto/logging-cookbook.html#logging-to-multiple-destinations

在示例(链接中的说明)中,他们将输出重定向到文件和控制台。如果您的要求是重定向到其他文件而不是/ var / log / messages;将“test.log”作为参数传递给basicConfig()函数,并为syslog创建另一个处理程序,如下所示。

sysloghandler = logging.handlers.SysLogHandler("/dev/log") 
sysloghandler.setLevel(logging.INFO) 
syslogformatter = logging.Formatter('%(name)s: %(level)s %(message)s') 
sysloghandler.setFormatter(syslogformatter) 
logging.getLogger('myapp').addHandler(sysloghandler)

答案 1 :(得分:-1)

logging.basicConfig()

显然设置了一个记录到/ var / log / messages的标准处理程序 尝试删除它或只是在添加之前删除所有处理程序。我从未使用过python:)