python多个日志模块怎么隔离_如何在多个模块中使用python日志

尝试使用logging.getLogger()获取日志对象实例:All calls to this function with a given name return the same logger instance. This means that logger instances never need to be passed between different parts of an application.

更新:

建议使用getLogger()函数并对其进行配置(设置处理程序、格式化程序等):# main.py

import logging

import lib

def main():

logger = logging.getLogger('custom_logger')

logger.setLevel(logging.INFO)

logger.addHandler(logging.FileHandler('test.log'))

logger.info('logged from main module')

lib.log()

if __name__ == '__main__':

main()

# lib.py

import logging

def log():

logger = logging.getLogger('custom_logger')

logger.info('logged from lib module')

如果您确实需要扩展logger类,请查看logging.setLoggerClass(klass)

更新2:

如何在不更改日志类的情况下添加自定义日志级别的示例:# main.py

import logging

import lib

# Extend Logger class

CUSTOM_LEVEL_NUM = 9

logging.addLevelName(CUSTOM_LEVEL_NUM, 'CUSTOM')

def custom(self, msg, *args, **kwargs):

self._log(CUSTOM_LEVEL_NUM, msg, args, **kwargs)

logging.Logger.custom = custom

# Do global logger instance setup

logger = logging.getLogger('custom_logger')

logger.setLevel(logging.INFO)

logger.addHandler(logging.FileHandler('test.log'))

def main():

logger = logging.getLogger('custom_logger')

logger.custom('logged from main module')

lib.log()

if __name__ == '__main__':

main()

定义一个自定义处理程序并可能使用多个记录器可以满足您的另一个需求:对stderr的可选输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值