我是Python新手,我尝试登录文件和控制台, 我看到了这个问题: logger configuration to log to file and print to stdout
这非常有用,但我看到有一种方法可以配置 ini 文件,然后在每个模块中使用它。
问题是它似乎没有从 ini 文件中获取属性 如果我没有在代码中明确定义格式化程序,它会使用默认日志记录而不使用我在 ini 文件中给出的格式:
configFolder = os.getcwd() + os.sep + 'Configuration'
fileConfig(configFolder + os.sep + 'logging_config.ini')
logger = logging.getLogger(__name__)
# create a file handler
handler = logging.FileHandler('logger.log')
handler.setLevel(logging.INFO)
# add the handlers to the logger
logger.addHandler(handler)
logger.info('hello')
输出只是:
hello
而不是:
2016-08-08 15:16:42,954 - __main__ - INFO - hello
这是我的 ini 文件:
[loggers]
keys=root
[handlers]
keys=stream_handler
[formatters]
keys=formatter
[logger_root]
level=INFO
handlers=stream_handler
[handler_stream_handler]
class=StreamHandler
level=INFO
formatter=formatter
args=(sys.stderr,)
[formatter_formatter]
format=%(asctime)s %(name)-12s %(levelname)-8s %(message)s
答案 0 :(得分:0)
更改 formatter=formatter 以匹配您的格式化程序的名称:formatter_formatter