如何从多个模块进行日志记录python日志记录

Umesh制作

我正在使用RotatingFilehandler保留5个文件作为备份。但是它不会记录除主模块以外的所有模块的消息。

basicconfig工作正常,但仅创建一个文件。

log_check.py:

import ll
import logChk

import logging
from logging.handlers import RotatingFileHandler

LOG_FILENAME = 'check.log'
logger = logging.getLogger(__name__)
formatter =logging.Formatter("[%(asctime)s] %(levelname)s [ %(name)s.%(funcName)s:%(lineno)d] - %(message)s")
logger.setLevel(logging.DEBUG)
handler = RotatingFileHandler(LOG_FILENAME, maxBytes=2000, backupCount=5)
handler.setFormatter(formatter)
logger.addHandler(handler)


logger = logging.getLogger(__name__)

def foo():
    logger.warning("logging from d on call foo()")

if __name__ == "__main__":

    logger.info('Starting logger for...')

    logger.warning('logging from c')
    foo()
    logChk.doo()
    ll.fun()

ll.py:

import logging
import log_conf
logger=logging.getLogger(__name__)

def fun():
    logger.info("In Fun")

logChk.py:

import logging

logger = logging.getLogger(__name__)

def doo():
    logger.info('Starting logger for... in dooo')
伊尔马林

记录器按名称分层组织。记录日志消息后,它将遍历记录器以查找处理程序,从记录消息的记录器开始,向上移动层次结构。层次结构遵循名称,因此,由于您是按模块名称命名记录器,因此记录到模块“ xyz”的消息将首先尝试查找附加到“ xyz”的处理程序,然后查找“ xy”,“ x”,最后是根目录记录器“”。

因此,要记录所有消息(通常需要这样做),您需要向根记录器而不是模块记录器添加处理程序。

LOG_FILENAME = 'check.log'
rootlogger = logging.getLogger() # No name here will return you the root logger
formatter =logging.Formatter("[%(asctime)s] %(levelname)s [ % (name)s.%(funcName)s:%(lineno)d] - %(message)s")
rootlogger.setLevel(logging.DEBUG)
handler = RotatingFileHandler(LOG_FILENAME, maxBytes=2000, backupCount=5)
handler.setFormatter(formatter)
rootlogger.addHandler(handler)

要管理日志记录配置,建议您不要手动设置处理程序和格式化程序,而应使用logging.config模块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python日志记录-多个模块

多个模块的Python日志记录

使用Python中的日志记录模块进行颜色日志记录

如何使用跨多个模块的日志记录对象来完成Python日志记录?

如何调试python日志记录模块?

如何从Python日志记录模块写入Kafka?

日志记录-如何忽略导入的模块日志?

Python:日志记录模块-全局

python:安装日志记录模块

Python日志记录模块加密

跨模块以相同的日志记录级别进行日志记录

Python记录StreamHandler不会从模块记录日志

Python日志记录创建多个日志

Python日志记录-禁用导入模块的日志记录

Python日志记录-dictConfig-子模块的日志记录目标

使用多个模块的python日志记录并写入文件和RotatingFileHandler

如何打印python日志记录模块使用的当前日志记录配置?

如何使用 click_log 控制具有多个模块的 python 项目中的日志记录级别?

如何仅在Python中设置模块的日志记录级别?

Python - 如何禁用从父目录导入的模块的日志记录?

如何覆盖Python模块的默认日志记录级别?

如何使用日志记录Python模块写入文件?

如何在python日志记录模块中指定级别?

使用多个后端进行日志记录

Python日志记录模块无故返回错误

Python的日志记录模块线程安全吗?

不同脚本共享的模块的Python日志记录

Python日志记录-如何禁用软件包的日志记录?

在Python日志记录中跨多个模块访问记录器