【Python】自动化打印日志模块(并发、样式、输出、保存)

# -*- coding:utf-8 -*-
import logging
import datetime

from concurrent_log_handler import ConcurrentRotatingFileHandler

logger = logging.getLogger()
# 设置此logger的最低日志级别,之后添加的Handler级别如果低于这个设置,则以这个设置为最低限制
logger.setLevel(logging.INFO)  # logging.INFO
# 设置日志输出字符串格式 [日志时间] [日志等级] [文件名] [函数名] [行号] [日志内容]
log_formatter = logging.Formatter(
    '[%(asctime)s] [%(levelname)s] [%(filename)s] [%(funcName)s] [%(lineno)d] %(message)s')

# 创建一个FileHandler,将日志输出到文件,采用ConcurrentRotatingFileHandler 防止并行输出缺失问题
log_file = '../Log/log-%s.log' % datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d')
file_handler = ConcurrentRotatingFileHandler(log_file, maxBytes=1024*1024*10, backupCount=10, encoding="utf-8")
# file_handler = logging.FileHandler(log_file, encoding="utf-8")
# 创建一个StreamHandler,将日志输出到控制台,默认输出到sys.stderr
stream_handler = logging.StreamHandler()

# 设置此Handler的最低日志级别
file_handler.setLevel(logging.WARNING)  # logging.WARNING
stream_handler.setLevel(logging.INFO)  # logging.INFO

# 设置此Handler的日志输出字符串格式
file_handler.setFormatter(log_formatter)
stream_handler.setFormatter(log_formatter)

# 将不同的Handler添加到logger中,日志就会同时输出到不同的Handler控制的输出中
# 注意如果此logger在之前使用basicConfig进行基础配置,因为basicConfig会自动创建一个Handler,所以此logger将会有3个Handler
# 会将日志同时输出到3个Handler控制的输出中
logger.addHandler(file_handler)
logger.addHandler(stream_handler)

run_log = logger


if __name__ == '__main__':
    # 文件中将会输出WARNING及以上级别的日志
    # 控制台将会输出INFO及以上级别的日志
    logger.debug('This is a debug message!')
    logger.info('This is a info message!')
    logger.warning('This is a warning message!')
    logger.error('This is a error message!')
    logger.critical('This is a critical message!')

其他文件引用

from Tools.MyLog import run_log as logger

logger.debug('This is a debug message!')
logger.info('This is a info message!')
logger.warning('This is a warning message!')
logger.error('This is a error message!')
logger.critical('This is a critical message!')
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值