您的位置:首页 > 编程语言 > Python开发

Python:使用json配置文件设置logger的配置(logging.config)

2018-11-18 10:56 369 查看
[code]#!/usr/bin/env python
# coding:UTF-8

"""
@version: python3.x
@author:曹新健
@contact: 617349013@qq.com
@software: PyCharm
@file: 使用配置文件设置logger的配置(logging.config).py
@time: 2018/11/16 13:26
"""

import os,logging,sys,time,json
import logging.config

def singleton(cls):
instances = {}
def _singleton(*args,**kwargs):
if cls not in instances:
instances[cls] = cls(*args,**kwargs)
return instances[cls]
return _singleton

@singleton
class Logger():
def __init__(self,logfile=None):
self.logger = logging.getLogger("simple_example")
with open("logconf.json","r") as config:
LOGGING_CONFIG = json.load(config)
logging.config.dictConfig(LOGGING_CONFIG)

if __name__ == "__main__":
lg = Logger()
lg.logger.warning("aaa1")
lg.logger.error("bbb2")
lg.logger.debug("ccc3")
[code]logconf.json

{
"version":1,
"handlers":{
"console_streamHandler":{
"class":"logging.StreamHandler",
"level":"DEBUG",
"formatter":"myFormatter",
"stream":"ext://sys.stdout"
},
"console1_fileHandler":{
"class":"logging.handlers.RotatingFileHandler",
"level":"DEBUG",
"formatter":"myFormatter",
"filename":"log.log",
"mode": "w+",
"maxBytes":  524288000,
"backupCount": 20,
"encoding":"utf8"
}
},
"formatters":{
"myFormatter":{
"format":"%(asctime)s %(name)s  %(levelname)s %(filename)s %(lineno)d %(thread)d %(threadName)s %(process)d %(message)s"
}
},
"loggers":{
"simple_example":{
"level":"DEBUG",
"handlers":["console_streamHandler","console1_fileHandler"]
}
}
}

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: