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)
如果需要将日志不上报错误,仅记录,可以将exc_info=False,回显如下:
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")
执行效果:
本文地址:https://blog.csdn.net/weixin_39339460/article/details/110872604
上一篇: 湖南城市学院是一本还是二本院校?是几本?在全国排名多少位?
下一篇: 江苏四大穷县 你了解多少呢