Python-如何使用ini文件将日志配置为文件并打印到控制台

时间:2016-08-08 12:34:21

标签: python logging

我是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

1 个答案:

答案 0 :(得分:0)

更改 formatter=formatter 以匹配您的格式化程序的名称:formatter_formatter