日志处理logging
一、日志输出
-
日志默认的输出等级为:waring级别及以上的等级
-
修改日志的默认输出等级通过
logging.basicConfig(level='INFO')
-
记录日志打印时间:
logging.basicConfig(format=console_fmt)
console_fmt = “%(name)s—>%(levelname)s—>%(asctime)s—>%(message)s—>%(lineno)d”
- %(name)s 名字
- %(levelname)s 日志级别
- %(asctime)s 打印时间,年月日十分秒
- %(message)s 日志中的信息
- %(lineno)d 报错日志在代码中第几行
-
logging.basicConfig(format=console_fmt,level='INFO')
# -*- coding: utf-8 -*-
import logging
logger = logging.getLogger(__name__)
console_fmt = "%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s--->%(lineno)d"
logging.basicConfig(level="INFO",format=console_fmt)
logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")
二、日志输出到控制台
# Time:2022 2022/3/1 17:20
# Author: Jasmay
# -*- coding: utf-8 -*-
import logging
# 第一步:创建日志器对象,默认等级为warning
logger = logging.getLogger("这是我的一个小测试日志")
logging.basicConfig(level="INFO")
# 第二步:创建控制台日志处理器
console_handler = logging.StreamHandler()
# 第三步:设置控制台日志的输出级别,需要日志器也设置日志级别为info;----根据两个地方的等级进行对比,取日志器的级别
console_handler.setLevel(level="WARNING")
# 第四步:设置控制台日志的输出格式
console_fmt = "%(name)s--->%(asctime)s--->%(message)s--->%(lineno)d"
fmt1 = logging.Formatter(fmt=console_fmt)
console_handler.setFormatter(fmt=fmt1)
# 第五步:将控制台日志器,添加进日志器对象中
logger.addHandler(console_handler)
logger.debug("---debug")
logger.info("---info")
logger.warning("---warning")
logger.error("---error")
logger.critical("---critical")
三、输出到日志文件
# Time:2022 2022/3/1 17:44
# Author: Jasmay
# -*- coding: utf-8 -*-
# Time:2022 2022/3/1 17:20
# Author: Jasmay
# -*- coding: utf-8 -*-
import logging
# 第一步:创建日志器对象,默认等级为warning
logger = logging.getLogger("这是我的一个小测试日志")
logging.basicConfig(level="INFO")
# 第二步:创建文件日志处理器
file_handler = logging.FileHandler("./log.txt",mode="a",encoding="utf-8")
# 第三步:设置控制台日志的输出级别,需要日志器也设置日志级别为info;----根据两个地方的等级进行对比,取日志器的级别
# 第四步:设置控制台日志的输出格式
file_fmt = "%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s"
fmt2 = logging.Formatter(fmt = file_fmt)
file_handler.setFormatter(fmt = fmt2)
# 第五步:将文件日志器,添加进日志器对象中
logger.addHandler(file_handler)
logger.debug("---debug")
logger.info("---info")
logger.warning("---warning")
logger.error("---error")
logger.critical("---critical")
四、同时输出到控制台+文件
# Time:2022 2022/3/1 17:20
# Author: Jasmay
# -*- coding: utf-8 -*-
import logging
# 第一步:创建日志器对象,默认等级为warning
logger = logging.getLogger("这是我的一个小测试日志")
logging.basicConfig(level="INFO")
# 第二步:创建控制台日志处理器+文件日志处理器
console_handler = logging.StreamHandler()
file_handler = logging.FileHandler("./log.txt",mode="a",encoding="utf-8")
# 第三步:设置控制台日志的输出级别,需要日志器也设置日志级别为info;----根据两个地方的等级进行对比,取日志器的级别
console_handler.setLevel(level="WARNING")
# 第四步:设置控制台日志和文件日志的输出格式
console_fmt = "%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s--->%(lineno)d"
file_fmt = "%(lineno)d--->%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s"
fmt1 = logging.Formatter(fmt = console_fmt)
fmt2 = logging.Formatter(fmt = file_fmt)
console_handler.setFormatter(fmt = fmt1)
file_handler.setFormatter(fmt = fmt2)
# 第五步:将控制台日志器、文件日志器,添加进日志器对象中
logger.addHandler(console_handler)
logger.addHandler(file_handler)
logger.debug("---debug")
logger.info("---info")
logger.warning("---warning")
logger.error("---error")
logger.critical("---critical")
五、日志类:将日志输出到控制台+文件
# Time:2022 2022/3/2 10:21
# Author: Jasmay
# -*- coding: utf-8 -*-
import logging
class Logger():
def __init__(self,level="DEBUG"):
# 创建日志器对象
self.logger = logging.getLogger(__name__)
self.logger.setLevel(level)
def console_handler(self,level="DEBUG"):
# 创建控制台的日志处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(level)
# 处理器添加输出格式
console_handler.setFormatter(self.get_formatter()[0])
# 返回控制器
return console_handler
def file_handler(self, level="DEBUG"):
# 创建文件的日志处理器
file_handler = logging.FileHandler("./log.txt",mode="a",encoding="utf-8")
file_handler.setLevel(level)
# 处理器添加输出格式
file_handler.setFormatter(self.get_formatter()[1])
# 返回控制器
return file_handler
def get_formatter(self):
"""格式器"""
console_fmt = logging.Formatter(fmt="%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s")
file_fmt = logging.Formatter(fmt="%(lineno)d--->%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s")
# 返回的是一个元组
return console_fmt,file_fmt
def get_log(self):
# 日志器中添加控制台处理器
self.logger.addHandler(self.console_handler())
# 日志器中添加文件处理器
self.logger.addHandler(self.file_handler())
# 返回日志实例对象
return self.logger
六、调用日志类:将日志输出到控制台+文件
# Time:2022 2022/3/2 10:45
# Author: Jasmay
# -*- coding: utf-8 -*-
from common.logone import Logger
class TestLog():
def __init__(self):
log = Logger()
self.logger = log.get_log()
def test_baili_01(self):
self.logger.info("开始执行")
self.logger.warning("结束执行")
# 实例化
test = TestLog()
# 调用类中的方法
test.test_baili_01()
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容