如何使用Python将两者都记录到控制台和文件中?

时间:2013-12-24 22:14:44

标签: python logging

我正在使用Python,我需要记录器,所以我决定开始使用RotatingFileHandler。以下是我的logging.conf文件

[loggers]
keys=root

[handlers]
keys=logfile

[formatters]
keys=logfileformatter

[logger_root]
level=DEBUG
handlers=logfile

[formatter_logfileformatter]
format=%(asctime)s %(name)-12s: %(levelname)s %(message)s

[handler_logfile]
class=handlers.RotatingFileHandler
level=NOTSET
args=('ookagent.log', 'a', 50000000000, 5)
formatter=logfileformatter

以下是我的Python脚本,我可以从中成功登录到文件。但我不知道如何同时记录文件和控制台。

#!/usr/bin/python
import logging
import logging.config
import logging.handlers

# using RotatingFileHandler for logging purpose
logging.config.fileConfig('logging.conf')
ooklogger = logging.getLogger('')


ooklogger.info("HelloWorld")

我们可以在logging.conf文件中进行更改,我可以通过该文件同时登录控制台和文件吗?有可能吗?

1 个答案:

答案 0 :(得分:1)

当然,日志配置文件格式允许您指定多个处理程序。您可以使用StreamHandler登录控制台。这将需要对您的配置文件进行类似的修改:

[handlers]
keys=logfile,logconsole

[handler_logconsole]
class=StreamHandler
# other configuration directives as you like

[logger_root]
handlers=logfile,logconsole

有关更多信息和示例,请参阅config file documentation