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 logger日志管理 -> 正文阅读

[Python知识库]python logger日志管理

普通日志生成logger代码:

import os
import time
import logging.config
from logging.handlers import TimedRotatingFileHandler

# 确定日志文件及等级
log_file_name = time.strftime("%Y-%m-%d", time.gmtime()) + '.log'
LOG_FILE = os.path.join(os.path.dirname(__file__), log_file_name)
LOG_LV = logging.INFO

# 设置日志format
simple_fmt = "%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s: %(message)s"
thread_fmt = "%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(threadName)s: %(message)s"
simple_formatter = logging.Formatter(simple_fmt)
thread_formatter = logging.Formatter(thread_fmt)

# 设置屏幕输出format,生成console handler
basic_console_handler = logging.StreamHandler()
basic_console_handler.setFormatter(simple_formatter)

# 设置文件format,生成file handler
basic_file_handler = TimedRotatingFileHandler(LOG_FILE, when="midnight")
basic_file_handler.setFormatter(thread_formatter)

# 配置等级
logging.config.dictConfig({"disable_existing_loggers": False, "version": 1})
logging.root.setLevel(LOG_LV)

logger = logging.getLogger(__name__)
# 添加输出handler、文件handler
logger.addHandler(basic_console_handler)
logger.addHandler(basic_file_handler)

测试代码:

logger.info("this is info")

logger.debug("this is debug")

logger.warning("this is waring")



logger.info("another info")

logger.debug("another debug")

logger.warning("another warning")



logger.info("another2 info")

logger.debug("another2 debug")

logger.warning("another2 warning")

屏幕输出:

2022-04-27 10:27:15,899 - INFO - 2.py - <module>: this is info
2022-04-27 10:27:15,899 - WARNING - 2.py - <module>: this is waring
2022-04-27 10:27:16,902 - INFO - 2.py - <module>: another info
2022-04-27 10:27:16,902 - WARNING - 2.py - <module>: another warning
2022-04-27 10:27:17,903 - INFO - 2.py - <module>: another2 info
2022-04-27 10:27:17,903 - WARNING - 2.py - <module>: another2 warning

文件写入:

2022-04-27 10:27:15,899 - INFO - 2.py - <module> - MainThread: this is info
2022-04-27 10:27:15,899 - WARNING - 2.py - <module> - MainThread: this is waring
2022-04-27 10:27:16,902 - INFO - 2.py - <module> - MainThread: another info
2022-04-27 10:27:16,902 - WARNING - 2.py - <module> - MainThread: another warning
2022-04-27 10:27:17,903 - INFO - 2.py - <module> - MainThread: another2 info
2022-04-27 10:27:17,903 - WARNING - 2.py - <module> - MainThread: another2 warning

补充json日志配置:

from pythonjsonlogger import jsonlogger


json_console_handler = logging.StreamHandler()
json_console_handler.setFormatter(json_formatter)
json_console_handler.setLevel(LOG_LV)
json_file_handler = TimedRotatingFileHandler(LOG_FILE, when='midnight')
json_file_handler.setFormatter(json_formatter)
json_file_handler.setLevel(LOG_LV)


logging.root.addHandler(json_file_handler)
logging.root.addHandler(json_console_handler)

补充dictconfig配置相关:

import logging
import logging.config
 
LOGGING_CONFIG = {
    "version": 1,
    "formatters": {
        "default": {
            'format':'%(asctime)s %(filename)s %(lineno)s %(levelname)s %(message)s',
        }
    },
    "handlers": {
        "console": {
            "class": "logging.StreamHandler",
            "level": "INFO",
            "formatter": "default",
        }
    },
    "disable_existing_loggers": True,
    "root": {
        "handlers": ["console"],
        "level": "DEBUG"
    },
}
 
logging.config.dictConfig(LOGGING_CONFIG)
logger = logging.getLogger("console_logger")

# 测试代码
logger.debug('debug message')
logger.info('info message')
logger.warn('warning message')
logger.error('error message')
logger.critical('critical message')

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:06:21  更:2022-04-29 12:07:22 
 
开发: 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 15:23:26-

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