gpt4 book ai didi

Python:日志记录模块 - 全局

转载 作者:IT老高 更新时间:2023-10-28 20:31:10 29 4
gpt4 key购买 nike

我想知道如何实现一个可以在任何地方使用您自己的设置的全局记录器:

我目前有一个自定义记录器类:

class customLogger(logging.Logger):
...

该类位于一个单独的文件中,其中包含一些格式化程序和其他内容。记录器可以独立运行。

我在我的主 python 文件中导入这个模块并创建一个像这样的对象:

self.log = logModule.customLogger(arguments)

但显然,我无法从代码的其他部分访问此对象。我使用了错误的方法吗?有没有更好的方法来做到这一点?

最佳答案

使用 logging.getLogger(name)创建一个命名的全局记录器。

ma​​in.py

import log
logger = log.setup_custom_logger('root')
logger.debug('main message')

import submodule

log.py

import logging

def setup_custom_logger(name):
formatter = logging.Formatter(fmt='%(asctime)s - %(levelname)s - %(module)s - %(message)s')

handler = logging.StreamHandler()
handler.setFormatter(formatter)

logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
logger.addHandler(handler)
return logger

submodule.py

import logging

logger = logging.getLogger('root')
logger.debug('submodule message')

输出

2011-10-01 20:08:40,049 - DEBUG - main - main message
2011-10-01 20:08:40,050 - DEBUG - submodule - submodule message

关于Python:日志记录模块 - 全局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7621897/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com