首页 > 编程语言 >Python日志收集

Python日志收集

时间:2022-10-25 13:11:22浏览次数:35  
标签:logging log 收集 Python yaml file import 日志



"""
1、设置日志的收集级别
2、可以将日志输出到文件和控制台

3、以下这些方法:
   info()
   debug()
   error()
   warning()
   critical()
   
额外拓展:单例模式
"""
import os
import logging
from logging import Logger
from concurrent_log_handler import ConcurrentRotatingFileHandler

from common.my_path import log_dir
from common.handle_yaml import do_yaml_log

class MyLogger(Logger):

    def __init__(self):
        file = os.path.join(log_dir,do_yaml_log.read("log", "file"))
        # 1、设置日志的名字、日志的收集级别
        super().__init__(do_yaml_log.read("log","name"), do_yaml_log.read("log","level"))

        # 2、可以将日志输出到文件和控制台

        # 自定义日志格式(Formatter)
        fmt_str = "%(asctime)s %(name)s %(levelname)s %(filename)s [%(lineno)d] %(message)s"
        # 实例化一个日志格式类
        formatter = logging.Formatter(fmt_str)

        # 实例化渠道(Handle).
        # 控制台(StreamHandle)
        handle1 = logging.StreamHandler()
        # 设置渠道当中的日志显示格式
        handle1.setFormatter(formatter)
        # 将渠道与日志收集器绑定起来
        self.addHandler(handle1)

        if file:
            # 文件渠道(FileHandle)
            # handle2 = logging.FileHandler(file, encoding="utf-8")
            handle2 = ConcurrentRotatingFileHandler(file, maxBytes=20*1024*1024, backupCount=5,encoding="utf-8")
            # 设置渠道当中的日志显示格式
            handle2.setFormatter(formatter)
            self.addHandler(handle2)


logger = MyLogger()

 

标签:logging,log,收集,Python,yaml,file,import,日志
From: https://www.cnblogs.com/xiaoyunyun100fen/p/16824508.html

相关文章

  • 【Python数据分析】数据的维度、Numpy
    数据的维度一维数据一维数据由对等关系的有序或无序数据构成,采用线性方式组织列表和数组二维数据是由多个一维数据组成,是一维数据的组合形式多维数据由一维或二维数......
  • 安装python的Django时,无法在PyCharm下的terminal进入虚拟环境的问题
    今日将网上他人django源码拉取下来,准备好用anconda工具来新建一个虚拟环境。等环境搭建好之后,打开pycharm发现在terminal中使用无法进入到虚拟环境中。在网上搜索了一番,终......
  • 一、python入门
    一.认识Python1、python的应用范围2、python排名(up)二.什么是编程语言1、编程语言如何工作用于人类和计算机进行交流的-种语言,通过编写编程语言的代码,去指挥计算机工......
  • python基础面试总结
    1闭包定义:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个参数a,内层函数依旧传入一个参数b,内层函数使用a和......
  • Python之格式化输出
    1.格式化字符串 %s,还可以写成  f'{表达式}'     f-格式化字符串是Python3.6中新增的格式化⽅法,该方法更简单易读。 2.转义字符\n:换⾏符。\t:制表符,一个tab......
  • Python报错-UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position 35
    问题描述:读文件报错  【代码】:withopen("D:\Code\Python\data.txt")asfile_object:contents=file_object.read()print(contents)【报错提示】:Trace......
  • pycharm中使用pip报错:You should consider upgrading via the 'python -m pip install
    问题:在pycharm中使用pip命令安装时出现以下报错:解决办法:1.在python安装路径下找到site-packages文件夹下的类似pip-21.1.3.dist-info文件夹,将整个文件夹删掉 2.再在p......
  • Python 类
    1.一个简单的类__init__()是一个特殊的方法,每当根据Dog类创建新的实例时,Python都会自动运行它。形参self是必不可少的,且不用手动为它传递实参。self为前缀的变量可以供类......
  • Python连续霸榜1年,2023该选Java还是Python?
    本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!前不久,TIOBE公布了10月的编程语言排行榜,不出意外,Python依旧占据榜首。(后面几位分别为C、Java、C++)这也是......
  • python中pip的用法
    1、安装库1pipinstall库名2、指定安装库的版本1pipinstall库名==版本3、将库更新到最新版本1pipinstall--upgrade库名4、将库更新到指定版本1pip......