python日志配置模块模板1

https://blog.csdn.net/weixin_45912307/article/details/108530372

python日志配置模块模板1

1. ⽇志的作⽤

  1. 记录程序运⾏状态
  2. 线上环境所有程序以 deamon 形式运⾏在后台, ⽆法使⽤ print 输出程序状态
  3. 线上程序⽆⼈值守全天候运⾏, 需要有⼀种能持续记录程序运⾏状态的机制, 以便遇到
    问题后分析处理
  4. 记录统计数据
  5. 开发时进⾏ Debug (调试)

2. 基本⽤法

import logging
# 设置⽇志格式
fmt = '%(asctime)s %(levelname)7.7s %(funcName)s: %(message)s'
formatter = logging.Formatter(fmt, datefmt="%Y-%m-%d %H:%M:%S")
# 设置 handler
handler = logging.handlers.TimedRotatingFileHandler('myapp.log',
when='D', backupCount=30)
handler.setFormatter(formatter)
# 定义 logger 对象
logger = logging.getLogger("MyApp")
logger.addHandler(handler)
logger.setLevel(logging.INFO)

3. ⽇志的等级

  • DEBUG: 调试信息
  • INFO: 普通信息
  • WARNING: 警告
  • ERROR: 错误
  • FATAL: 致命错误
    4. 对应函数
  • logger.debug(msg)
  • logger.info(msg)
  • import logging
    5. ⽇志格式允许的字段
  • %(name)s : Logger的名字
  • %(levelno)s : 数字形式的⽇志级别
  • %(levelname)s : ⽂本形式的⽇志级别
  • %(pathname)s : 调⽤⽇志输出函数的模块的完整路径名, 可能没有
  • %(filename)s : 调⽤⽇志输出函数的模块的⽂件名
  • %(module)s : 调⽤⽇志输出函数的模块名
  • %(funcName)s : 调⽤⽇志输出函数的函数名
  • %(lineno)d : 调⽤⽇志输出函数的语句所在的代码⾏
  • %(created)f : 当前时间, ⽤UNIX标准的表示时间的浮点数表示
  • %(relativeCreated)d : 输出⽇志信息时的, ⾃Logger创建以来的毫秒数
  • %(asctime)s : 字符串形式的当前时间。默认格式是“2003-07-08 16:49:45,896”。逗号后
    ⾯的是毫秒
  • %(thread)d : 线程ID。可能没有
  • %(threadName)s : 线程名。可能没有
  • %(process)d : 进程ID。可能没有
  • %(message)s : ⽤户输出的消息

6. Django 中的⽇志配置

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    # 格式配置
    'formatters': {
        'simple': {
            'format': '%(asctime)s %(module)s.%(funcName)s: %(message)s',
            'datefmt': '%Y-%m-%d %H:%M:%S',
        },
        'verbose': {
            'format': ('%(asctime)s %(levelname)s [%(process)d-%(threadName)s] '
                    '%(module)s.%(funcName)s line %(lineno)d: %(message)s'),
            'datefmt': '%Y-%m-%d %H:%M:%S',
        }
    },
    # Handler 配置
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
            'level': 'DEBUG' if DEBUG else 'WARNING'
        },
        'info': {
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'filename': f'{BASE_DIR}/logs/info.log',  # 日志保存路径
            'when': 'D',        # 每天切割日志
            'backupCount': 30,  # 日志保留 30 天
            'formatter': 'simple',
            'level': 'INFO',
        },
        'error': {
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'filename': f'{BASE_DIR}/logs/error.log',  # 日志保存路径
            'when': 'W0',      # 每周一切割日志
            'backupCount': 4,  # 日志保留 4 周
            'formatter': 'verbose',
            'level': 'WARNING',
        }
    },
    # Logger 配置
    'loggers': {
        'django': {
            'handlers': ['console'],
        },
        'inf': {
            'handlers': ['info'],
            'propagate': True,
            'level': 'INFO',
        },
        'err': {
            'handlers': ['error'],
            'propagate': True,
            'level': 'WARNING',
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值