为什么这个python日志函数不起作用?

2024-04-19 05:44:01 发布

您现在位置:Python中文网/ 问答频道 /正文

出于某种原因,下面的代码生成一个空的日志文件,其中没有文本。我做错什么了?你知道吗

import logging

def log_generator(logfilepath='test.log'):

    my_formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
    my_logger = logging.getLogger('example_logger')
    my_handler = logging.FileHandler( logfilepath )
    my_handler.setFormatter( my_formatter )
    my_logger.addHandler( my_handler )

    my_logger.info('message 1') # This should be visible in the log file


log_generator() # Execute the log_generator() function

Tags: 文件the文本importlogmessagemyformatter
1条回答
网友
1楼 · 发布于 2024-04-19 05:44:01

您需要设置记录器的级别。你知道吗

在调用info()之前添加此行:

my_logger.setLevel(logging.DEBUG)

所以你的代码应该是这样的:

import logging

def log_generator(logfilepath='test.log'):

    my_formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
    my_logger = logging.getLogger('example_logger')
    my_handler = logging.FileHandler(logfilepath)
    my_handler.setFormatter( my_formatter )
    my_logger.addHandler( my_handler )
    my_logger.setLevel(logging.DEBUG)
    my_logger.info('message 1') # This should be visible in the log file


log_generator()

哪五个将为您提供输出:

john-the-ripper@john-the-ripper:/tmp$ more test.log 
2014-08-07 10:20:23,665 INFO message 1

更新日期:

从文档中:

 The INFO message doesn’t appear because the default level is WARNING.

相关问题 更多 >