之前使用
dictConfig
写了自定义日志器的封装,但感觉不是很好,责任划分不明确,边在实践中进行优化,把日志的一部分配置(如日志文件名、路径等)摘出来放在项目配置文件中,其他配置依旧放在yaml
文件中维护。如有不对或可优化的点,欢迎指出!
日志器封装demo
1. 从项目配置文件中读取日志相关配置内容
content of src __init__.py
# content of src __init__.py
# -*- coding: utf-8 -*-
# @Time : 2020/11/15 2:51 下午
# @Author : holidaylzz
import os
import jsonpath
import yaml.scanner
SETTING_DIR = '项目配置文件绝对路径'
# 单例,项目配置文件
with open(file=SETTING_DIR, mode='r') as file:
setting_content = yaml.safe_load(file.read())
def __load_logfile_config():
"""
读取项目日志配置
:return:
"""
# 项目绝对路径
project_dir = jsonpath.jsonpath(setting_content, '$.project.dir')
if not project_dir:
raise TypeError('project dir error,please check setting file!')
# 改变当前目录至项目目录
os.chdir(project_dir[0])
# logging.yaml文件
logging_yaml_dir = jsonpath.jsonpath(setting_content, '$.log_config.logging_yml_dir')
if not logging_yaml_dir:
raise TypeError('logging_yml_dir error,please check setting file!')
logging_yaml_abs_dir = os.path.abspath(loggin