【python】logging日志实时打印到控制台+输出到文件(pytest) 您所在的位置:网站首页 控制台输出日志会被存起来吗 【python】logging日志实时打印到控制台+输出到文件(pytest)

【python】logging日志实时打印到控制台+输出到文件(pytest)

2024-07-18 01:34| 来源: 网络整理| 查看: 265

一、日志的输出:

1、日志默认的输出等级为:warning级别及以上的 2、想修改日志的默认输出等级?通过logging.basicConfig(level=“INFO”)----info需要用大写 3、想知道日志是什么时候打印出来的,以及其他参数?通过logging.basicConfig(format=console_fmt) 4、如果要同时添加这2个参数,需要写在一行代码中,logging.basicConfig(level=“INFO”,format=console_fmt)

%(name)s:名字%(levelname)s:日志级别%(asctime)s:打印时间,年月日时分秒%(message)s:日志中的信息%(lineno)d:报错日志在代码中第几行 # Time:2022 2022/3/1 16:05 # Author: Jasmay # -*- coding: utf-8 -*- import logging # 1、日志默认的输出等级为:warning级别及以上的 # 2、想修改日志的默认输出等级?通过logging.basicConfig(level="INFO")----info需要用大写 # 3、想知道日志是什么时候打印出来的,以及其他参数?通过logging.basicConfig(format=console_fmt) # 4、如果要同时添加这2个参数,需要写在一行代码中,logging.basicConfig(level="INFO",format=console_fmt) # %(name)s:名字 # %(levelname)s:日志级别 # %(asctime)s:打印时间,年月日时分秒 # %(message)s:日志中的信息 # %(lineno)d:报错日志在代码中第几行 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()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有