为方便后期自己使用,将日志记录贴于此,懒得写代码注释了。自己只用了写入文件和控制输出,用法较多,没有详细研究了。
import logging
import logging.config
import json
class recordlog(object):
def __init__(self):
with open("config/logjson", mode="r") as f:
LOGGING_CONFIG = json.load(f)
logging.config.dictConfig(LOGGING_CONFIG)
def return_logers(self):
logger = logging.getLogger("console_logger")
file_logger = logging.getLogger("file_logger")
return logger, file_logger
# 析构函数
def __del__(self):
# 删除对象
class_name = self.__class__.__name__
if __name__ == "__main__":
rdlog = recordlog()
s_log, f_log = rdlog.return_logers()
s_log.info("INFO LOG")
f_log.info("INFO LOG")
日志格式配置json文件
{
"version": 1,
"formatters": {
"default": {
"format": "%(asctime)s %(filename)s %(lineno)s %(levelname)s %(message)s"
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "default"
},
"file": {
"class": "logging.handlers.TimedRotatingFileHandler",
"level": "DEBUG",
"filename": "./logs/log.txt",
"formatter": "default",
"encoding": "utf8",
"when": "midnight",
"backupCount": 30
}
},
"loggers": {
"console_logger": {
"handlers": ["console"],
"level": "INFO",
"propagate": false
},
"file_logger": {
"handlers": ["file"],
"level": "INFO",
"propagate": false
}
},
"disable_existing_loggers": true,
"root": {
"handlers": ["console", "file"],
"level": "INFO"
}
}