我正在 python 中使用日志记录模块。在我的main.py文件中,我使用两个记录器。
我希望 的信息local logger与 分开root logger。但是当我创建单独的记录器时。的信息local logger也存在于根记录器信息中。
这是我如何执行此操作的示例
# main.py
import logging
def setup_logger(filename, name = ''):
if name == '':
logging.basicConfig(filename=filename,
format='%(asctime)s %(funcName)s %(levelname)s %(message)s',
filemode='a')
logger = logging.getLogger()
else:
"""
handler = logging.FileHandler(filename, mode = 'a')
handler.setFormatter(logging.Formatter('%(asctime)s %(funcName)s %(levelname)s %(message)s'))
logger = logging.getLogger(name)
logger.addHandler(handler)
"""
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
handler = logging.FileHandler(filename)
handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
logger.addHandler(handler)
return logger
logger.setLevel(logging.DEBUG)
return logger
logger = setup_logger('main.log')
local_logger = setup_logger('local_log.log', 'local_log')
Run Code Online (Sandbox Code Playgroud)
# other file under root log
logger = logging.getLogger("__main__." + __name__)
Run Code Online (Sandbox Code Playgroud)
如果您不希望本地记录器将其日志发送到根记录器处理程序,则必须停止传播:
logger.propagate = False
Run Code Online (Sandbox Code Playgroud)
文档的这一部分解释得很好:https ://docs.python.org/3/howto/logging.html#logging-flow
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |