我有一个具有日志记录功能的脚本,它停止工作(日志记录,而不是脚本)。我写了一个小例子来说明问题:
import logging
from os import remove
from os.path import exists
def setup_logger(logger_name, log_file, level=logging.WARNING):
# Erase log if already exists
if exists(log_file):
remove(log_file)
# Configure log file
l = logging.getLogger(logger_name)
formatter = logging.Formatter('%(message)s')
fileHandler = logging.FileHandler(log_file, mode='w')
fileHandler.setFormatter(formatter)
streamHandler = logging.StreamHandler()
streamHandler.setFormatter(formatter)
l.setLevel(level)
l.addHandler(fileHandler)
l.addHandler(streamHandler)
if __name__ == '__main__':
setup_logger('log_pl', '/home/myuser/test.log')
log_pl = logging.getLogger('log_pl')
log_pl.info('TEST')
log_pl.debug('TEST')
在脚本结束时,创建了文件test.log,但它是空的。
我错过了什么?
答案 0 :(得分:3)
您的setup_logger
函数指定(默认)级别WARNING
def setup_logger(logger_name, log_file, level=logging.WARNING):
...然后您记录两个级别低于WARNING
的事件,并且会被忽略,因为它们应该是:
log_pl.info('TEST')
log_pl.debug('TEST')
如果您将调用setup_logger
功能的代码更改为:
if __name__ == '__main__':
setup_logger('log_pl', '/home/myuser/test.log', logging.DEBUG)
......我希望它能按照你的意愿运作。
请参阅Logging HOWTO页面中的simple example。