Python:写入日志文件

python可以在执行时写入日志用于查找问题,这里提供一个类,在需要的时候就可以直接使用:

复制代码
import logging
from logging import handlers

class Logger(object):
    level_relations = {
        'debug':logging.DEBUG,
        'info':logging.INFO,
        'warning':logging.WARNING,
        'error':logging.ERROR,
        'crit':logging.CRITICAL
    }     #日志关系映射

    def __init__(self,filename,level='info',backCount=10,fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):
        self.logger = logging.getLogger(filename)
        format_str = logging.Formatter(fmt)                  #设置日志格式
        self.logger.setLevel(self.level_relations.get(level))#设置日志级别
        
        sh = logging.StreamHandler()  #往屏幕上输出
        sh.setFormatter(format_str)   #设置屏幕上显示的格式
        self.logger.addHandler(sh)    #把对象加到logger里
        
        fh = handlers.RotatingFileHandler(filename=filename,maxBytes=10485760,backupCount=backCount)   # 按照文件大小分割日志文件
        fh.setLevel(self.level_relations.get(level))
        fh.setFormatter(format_str)   #设置文件里写入的格式
        self.logger.addHandler(fh)
        
if __name__ == '__main__':
    log = Logger('my_test.log',level='debug')
    log.logger.debug('------0. it is a debug ------')
    log.logger.info('------ 1. it is a test ------')
    log.logger.warning('------ 2. it is a warning ------')
    log.logger.error('------ 3. it is an error ------')
    log.logger.critical('------ 4. serious problem ------')
复制代码

屏幕显示:

同样可以在文件夹下找到 my_test.log文件。

日志级别: debug --> info --> warning --> error --> critical。

日志级别使用备注
DEBUG 详细信息,调试使用
INFO 正常信息
WARNING 警告信息
ERROR 错误信息
CRITICAL 问题很严重

注:

handlers.TimedRotatingFileHandler  ---> 可以按时间分割日志文件 

#

更多解释和说明可参考某大神博客:https://www.cnblogs.com/nancyzhu/p/8551506.html

posted on   落日峡谷  阅读(2056)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示