Python日志操作类与RotatingFileHandler配置详解
本文介绍如何在Python项目中封装日志操作类,并结合RotatingFileHandler实现日志自动轮转。通过示例展示INetLogger类的单例模式实现,以及logger.ini配置文件中对日志级别、输出格式和文件轮转策略(如大小2000000字节、保留9个文件)的具体配置方法,帮助开发者在生产环境中有效管理日志文件。
Python日志管理类实现与RotatingFileHandler配置指南
本文分享一个Python日志文件操作类的实现及其应用场景,供读者参考学习。
在软件开发过程中,日志记录是不可或缺的一环,它能帮助开发者掌握程序的运行状态。特别是在生产环境部署时,通常无法直接进行调试(debug),虽然部分场景支持远程调试,但大多数情况下仍需依赖常规的日志记录方式。例如在Java生态中,常使用log4j、slf4j或logback等第三方组件来管理日志。
那么,在Python中如何实现类似的日志功能呢?Python标准库本身已提供了完善的日志处理模块,可直接调用。本文整理并分享了在实际项目中使用的日志实现方案,主要包含以下两个核心部分:
1. 封装日志操作类
2. 配置日志文件(包括handler、logger及日志存储路径等)
日志操作类封装
以下是日志操作类的具体实现代码。
'''
Created on 2012-2-17
@author: yihaomen.com
'''
import logging.config
import os
class INetLogger:
log_instance = None
@staticmethod
def InitLogConf():
currentDir=os.path.dirname(__file__)
INetLogger.log_instance = logging.config.fileConfig(currentDir+os.path.sep+"logger.ini")
@staticmethod
def GetLogger(name = ""):
if INetLogger.log_instance == None:
INetLogger.InitLogConf()
INetLogger.log_instance = logging.getLogger(name)
return INetLogger.log_instance
if __name__ == "__main__":
logger = INetLogger.GetLogger()
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")
logHello = INetLogger.GetLogger("root")
logHello.info("Hello world!")
日志配置文件详解
日志配置文件与上述类文件位于同一目录下,文件名为logger.ini。
[loggers]
keys=root,mysql,socket
[handlers]
keys=consoleHandler,rotateFileHandler
[formatters]
keys=simpleFormatter
[formatter_simpleFormatter]
format=[%(asctime)s][%(levelname)s] [%(filename)s:%(lineno)d] [thread:%(thread)d]: %(message)s
[logger_root]
qualname=root
level=DEBUG
handlers=consoleHandler,rotateFileHandler
[logger_mysql]
qualname=mysql
level=DEBUG
handlers=rotateFileHandler
[logger_socket]
qualname=socket
level=ERROR
handlers=rotateFileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_rotateFileHandler]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('c:/logs/InetServer.log', 'a', 2000000, 9)
若配置中使用RotatingFileHandler,日志将保存至c:/logs/InetServer.log文件。当日志文件大小超过2000000字节时,系统将自动创建新文件继续记录,并保留最近9天的日志。若将参数调整为30,则可保存最近一个月的日志记录。
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python日志操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述内容能对大家的Python程序设计有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













