我有一个具有日志记录功能的脚本,但它停止工作(日志记录,而不是脚本)。我写了一个小例子来说明问题:
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')
Run Code Online (Sandbox Code Playgroud)
在脚本的末尾,创建了文件 test.log,但它是空的。
我错过了什么?
您的setup_logger函数指定了(默认)级别WARNING
def setup_logger(logger_name, log_file, level=logging.WARNING):
Run Code Online (Sandbox Code Playgroud)
...然后你记录了两个低于 的事件,WARNING它们应该被忽略:
log_pl.info('TEST')
log_pl.debug('TEST')
Run Code Online (Sandbox Code Playgroud)
如果您将调用setup_logger函数的代码更改为:
if __name__ == '__main__':
setup_logger('log_pl', '/home/myuser/test.log', logging.DEBUG)
Run Code Online (Sandbox Code Playgroud)
...我希望它能如你所愿。
请参阅Logging HOWTO 页面中的简单示例。
| 归档时间: |
|
| 查看次数: |
6516 次 |
| 最近记录: |