[英]Why info and debug messages are not getting logged?
我从真实的 python 复制了示例,并添加了另外两行来记录信息和调试级别的消息。 但是,它们永远不会被记录。 你知道出了什么问题吗?
import logging
# Create a custom logger
logger = logging.getLogger(__name__)
# Create handlers
c_handler = logging.StreamHandler()
f_handler = logging.FileHandler('file.log')
c_handler.setLevel(logging.INFO)
f_handler.setLevel(logging.DEBUG)
# Create formatters and add it to handlers
c_format = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
f_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
c_handler.setFormatter(c_format)
f_handler.setFormatter(f_format)
# Add handlers to the logger
logger.addHandler(c_handler)
logger.addHandler(f_handler)
logger.warning('This is a warning')
logger.error('This is an error')
logger.info('This is info')
logger.debug('Just debugging')
这会导致日志文件包含以下内容,即缺少信息和调试消息。
2021-12-07 20:40:16,301 - __main__ - WARNING - This is a warning
2021-12-07 20:40:16,301 - __main__ - ERROR - This is an error
现在我终于得到了答案,通过在这里提供指导。 我不知道为什么我上面的方法不起作用。 但是,我知道如何让它发挥作用。 我完全删除了 FileHandler,并将日志记录添加到基本配置中的文件中,如下所示。 现在我将调试级别登录到文件中,并将信息级别登录到控制台
import logging
f_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
logging.basicConfig(level=logging.DEBUG,
format=f_format,
filename='file.log',
filemode='w')
# Create a custom logger
logger = logging.getLogger(__name__)
c_format = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
c_handler = logging.StreamHandler()
c_handler.setLevel(logging.INFO)
c_handler.setFormatter(c_format)
logger.addHandler(c_handler)
logger.warning('This is a warning')
logger.error('This is an error')
logger.info('This is info')
logger.debug('Just debugging')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.