我试着登录文件和控制台,我看到了这个问题: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