Python Logging

本文详细介绍了Python中logging模块的日志记录功能及其在多模块项目中的应用,包括配置文件的设置、使用示例以及解决冲突问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python 的日志记录可以使用 logging 模块。特别是对于多个模块共用日志系统时非常方便,只需要在主模块中导入日志配置,子模块中直接获取日志句柄就行。有点类似于 Java 的 Log4j 或 Logback 之类。

配置文件

[loggers]
keys=root,mylogger

[handlers]
keys=consoleHandler,rotateFileHandler

[formatters]
keys=simpleFormatter,myFormatter

[formatter_simpleFormatter]
format=[%(asctime)s](%(levelname)s)%(name)s : %(message)s

[formatter_myFormatter]
format=[%(asctime)s][%(filename)s - line:%(lineno)d] [%(levelname)s] %(message)s

[logger_root]
level=DEBUG
handlers=consoleHandler,rotateFileHandler

[logger_mylogger]
level=DEBUG
handlers=consoleHandler,rotateFileHandler
qualname=example
propagate=0

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=myFormatter
args=(sys.stdout,)

[handler_rotateFileHandler]
class=handlers.TimedRotatingFileHandler
level=DEBUG
formatter=myFormatter
args=('path/to/logs/my.log', 'D', 1, 0)

使用示例

import logging
import logging.config

logging.config.fileConfig(os.path.split(os.path.realpath(__file__))[0]+"/conf/logging.conf")

logger = logging.getLogger("mylogger")
logger.debug("%s", "Hello World!")

实践问题

  • 多模块共用日志时,如果主模块导入日志配置后,子模块又导入一次,会出现无法输出日志或者日志错乱的现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值