IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【python】日志实时打印到控制台+输出到文件(pytest) -> 正文阅读

[Python知识库]【python】日志实时打印到控制台+输出到文件(pytest)

一、日志的输出:

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()

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:08:24  更:2022-03-03 16:09:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:35:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码