前言 将日志json化输出
基本信息 如果需要更改消息显示格式, 需要指定format
1 2 3 4 5 import logging logging.basicConfig(format ='%(levelname)s:%(message)s' , level =logging.DEBUG)logging.debug ('This message should appear on the console' ) logging.info ('So should this' ) logging.warning ('And this, too' )
将输出
1 2 3 DEBUG:This message should appear on the console INFO:So should this WARNING:And this , too
可参考: LogRecord属性
配置JSON输出 安装 python-json-logger 配置JSON输出,我们需要安装第三方的包
1 pip install python-json-logger
pip install python-json-logger
Pypihttps://pypi.python.org/pypi/python-json-logger
创建配置文件 logging.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 [loggers] keys=root,jsonmodule [handlers] keys=consoleHandler,fileHandler [formatters] keys=simpleFormatter,json [logger_root] level=DEBUG handlers=consoleHandler [logger_jsonmodule] level=DEBUG handlers=fileHandler qualname=jsonmodule [handler_consoleHandler] class=StreamHandler level=DEBUG formatter=simpleFormatter args=(sys.stdout,) [handler_fileHandler] class=handlers.TimedRotatingFileHandler level=INFO formatter=json args=("./app.log", 'd', 1, 15, 'utf-8') [formatter_json] class=pythonjsonlogger.jsonlogger.JsonFormatter format=%(asctime)s %(threadName)s %(thread)d %(levelname)s %(lineno)d %(module)s %(funcName)s %(message)s [formatter_simpleFormatter] format=%(asctime)s %(funcName)s %(filename)s [line: %(lineno)d] %(levelname)s:%(message)s
默认前台输出,以及后台写文件. 日志文件已天分割, 并且保留15天.
使用
1 2 3 4 5 6 import logging.config logging.config .fileConfig ('logging.conf' ) logger = logging.getLogger ('jsonmodule' ) logger.error ('dawdwad' )
输出
1 2 3 4 5 前台: 2021 -06 -25 16 :54 :32 ,185 <module> logger.py [line : 7 ] ERROR:dawdwad日志: {"asctime" : "2021-06-25 16:54:32,185" , "threadName" : "MainThread" , "thread" : 18348 , "levelname" : "ERROR" , "lineno" : 7 , "module" : "logger" , "funcName" : "<module>" , "message" : "dawdwad" }
参考