Python-日志封装+配置文件

创建三个文件

 

 conf.ini

[log]
name=py2302
level=ERROR
file=py2302.log

myConf.py

from configparser import ConfigParser

class MyConf(ConfigParser):
  def __init__(self,filename):
  super().__init__()
  self.read(filename,encoding="utf-8")

mylogger.py

import logging
from logging import Logger
from py2302.myConf import MyConf

class MyLogger(Logger):

def __init__(self):
conf = MyConf("conf.ini")
file = conf.get("log", "file")
# 1、设置日志的名字、日志的收集级别
super().__init__(conf.get("log","name"), conf.get("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.setFormatter(formatter)
self.addHandler(handle2)


logger = MyLogger()
posted @ 2023-02-02 11:18  Hephia  阅读(201)  评论(0)    收藏  举报