python阻止日志将日志写入syslog
这是我的日志设置。它工作正常,我可以在test.log中找到log,但我也可以在/var/log/messages中找到类似的内容python阻止日志将日志写入syslog,python,python-2.7,Python,Python 2.7,这是我的日志设置。它工作正常,我可以在test.log中找到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
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)
更新
此代码在我的twisted服务中,我使用systemctl启动此服务
logging.basicConfig()
显然是设置了一个记录到/var/log/messages的标准处理程序
尝试删除它,或者在添加您的处理程序之前删除所有处理程序。我从未使用过python:请参阅下面的链接。举例说明
在链接中解释的示例中,他们已将输出重定向到文件和控制台。如果您的要求是重定向到其他文件,而不是/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)
我不反对你的答案,但为什么你知道原因是logging.basicConfig任何引用?我想Linux可能会将我的服务记录到/var/log/messages。你是说根部分吗?在链接中解释的示例中,他们已将输出重定向到文件和控制台。如果您的要求是重定向到其他文件,而不是/var/log/messages;将test.log作为参数传递给basicConfig函数,并为syslog创建一个以上的处理程序,如下所示。sysloghandler=logging.handlers.sysloghandler/dev/log sysloghandler.setLevellogging.INFO syslogformatter=logging.Formatter“%name:%levels%messages”sysloghandler.setformattersyslogformatter我不想将日志写入syslogvar/log/messages,在我的代码中我只使用basicConfig,但它仍然将日志写入syslogvar/log/messages。我将python应用程序注册到服务,这有关系吗?