欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

logging模块

程序员文章站 2022-06-17 14:42:39
1、使用logging输出文件日志,不多说,直接上源码:#coding:utf-8import loggingimport osimport timeclass LogUtil(): #第一步,创建一个logger logger = logging.getLogger() #第二步,设置总开关的开关 logger.setLevel(logging.INFO) #第三步,构建log文件名称 rq = time.strftime('%Y%m%d%H%M...

1、使用logging输出文件日志,不多说,直接上源码:

#coding:utf-8
import logging
import os
import time

class LogUtil():
    #第一步,创建一个logger
    logger = logging.getLogger()
    #第二步,设置总开关的开关
    logger.setLevel(logging.INFO)
    #第三步,构建log文件名称
    rq = time.strftime('%Y%m%d%H%M',time.localtime(time.time()))
    #*****这里的log_path必须存在,否则执行的时候会报错找不到文件
    log_path = os.path.dirname(os.getcwd())+'/Logs/'
    log_name =log_path+rq+'.log'
    logfile = log_name
    #第四步,创建一个fileHandler
    fh = logging.FileHandler(logfile,mode='w')
    #第五步,设置文件输出日志的等级
    fh.setLevel(logging.DEBUG)
    #第六步,定义handler的输出格式
    formatter = logging.Formatter("%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s:%(message)s")
    fh.setFormatter(formatter)
    logger.addHandler(fh)



2、日志记录报错方式:

#logUtil是封装好的logging工具类
logger = LogUtil().logger
try:
    open('./test.txt','rb')
except Exception:
    logger.error("Failed to open file",exc_info=True)

logging模块
如果需要将日志不上报错误,仅记录,可以将exc_info=False,回显如下:
logging模块

3、日志分割
以秒为单位,每秒分割一个,最多保留最近的三个日志。

#coding=utf-8
import logging
import time
from logging import handlers

logging.basicConfig()
myapp = logging.getLogger()
myapp.setLevel(logging.INFO)

timefilehandler = handlers.TimedRotatingFileHandler("./myapp.log",when='S',interval=1,backupCount=3)
timefilehandler.sufiix = "%Y-%m-%d_%H-%M-%S.log"

formatter = logging.Formatter('%(asctime)s|%(name)-12s: %(levelname)-8s %(message)s')
timefilehandler.setFormatter(formatter)
myapp.addHandler(timefilehandler)

while True:
    time.sleep(1)
    myapp.info("test")

执行效果:
logging模块

本文地址:https://blog.csdn.net/weixin_39339460/article/details/110872604

相关标签: python