这是我的日志设置。它工作得很好,我可以在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)#更新
此代码位于我的扭曲服务中,我使用systemctl启动该服务。
发布于 2016-12-12 09:47:59
参考下面的链接。举例说明。
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)发布于 2016-12-12 05:46:15
logging.basicConfig()这显然是设置了一个标准处理程序,该处理程序记录到/var/log/messages,尝试删除它,或者在添加您的处理程序之前简单地删除所有处理程序。我从未使用过python :)
https://stackoverflow.com/questions/41093806
复制相似问题