这是我的日志记录设置。它工作正常,我可以找到登录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
启动此服务
答案 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:)