用于python日志记录的结构化格式化程序
zenetka的Python项目详细描述
zenetka
==
**zenetka**提供简单的python日志格式化程序,将
`logging.logrecord`格式化为*json*对象。
instalation
----
:
usage
----
配置日志。例如,如果使用“Log.CONFIG.DICONTION()格式::
日志= {
版本”:1,
“不存在的日志记录器”:false,
‘格式化程序’:{BR/>‘(’):‘ZeETKA’JsonFormatter’,
‘DATFEMT’:'%Y-%M%%D%H:%M:%s”,
“忽略的属性”:['processname','thread','threadname'],
“漂亮的”:false,
},
},
“处理程序”:{
“控制台”:{
“类”:“logging.streamhandler”,
“级别”:“notset”,
“格式化程序”:“json”,
},
},
‘记录者’:{
':{
‘级别’:‘信息’,
‘处理者’:(‘控制台’,),
},
},
}
记录消息的示例::
{“名称”:“doporucovani-storage.couchbasetstorage”,“msg”:“连接到couchbase\%s”,“args”:[“http:\/\/localhost:8091\/bucket”],“levelname”:“info”,“levelno”:20,“module”:“couchbasetstorage”,“exc_text”:,“funcname”:“connect”,“created”:1541512363.4698207378,“msecs”:469.8207378387,“relativecreated”:2155.5094718933,“process”:19816,“message”:“connecting to couchbase\”http:\/\/localhost:8091\/bucket“,“asctime”:“2018-11-06 14:52:43”,“stack_text”:“}
它们被转换为*exc_text*和*stack_text*
是否要记录其他数据?代替*args*使用一个参数
作为“dict”,或使用*extra*参数或同时使用这两个参数::
logger.info(
“连接到couchbase”%(connection_string)s“,
{connection_string':conn_str,'attempts':attempts},
extra={msg_type':'db_connect'})
*extra*转换为*json*对象的属性。` dict`用于
字符串格式,它可以包含其他属性。将生成
消息:
{“msg”:“connecting to couchbase\”%(connection_string)s\”,“args”:{“connection_string”:“http:\/\/localhost:8091\/bucket”,“attempts”:2},“msg_type”:“db_connect”,“message”:“connecting to couchbase\”http:\/\/localhost:8091\/bucket\”,“asctime”:“2018-11-06 14:52:43”,“stack_text”:“,…}
记录日志并享受结构化日志。然而,文本日志仍然可用,因为没有魔力,它仍然是python的日志。
这取决于配置,所以对经典文本使用'logging.formatter'
日志:
2018-11-06 14:52:43信息连接到couchbase“http://localhost:8091/bucket”
许可证
----
3-clause bsd
==
**zenetka**提供简单的python日志格式化程序,将
`logging.logrecord`格式化为*json*对象。
instalation
----
:
usage
----
配置日志。例如,如果使用“Log.CONFIG.DICONTION()格式::
日志= {
版本”:1,
“不存在的日志记录器”:false,
‘格式化程序’:{BR/>‘(’):‘ZeETKA’JsonFormatter’,
‘DATFEMT’:'%Y-%M%%D%H:%M:%s”,
“忽略的属性”:['processname','thread','threadname'],
“漂亮的”:false,
},
},
“处理程序”:{
“控制台”:{
“类”:“logging.streamhandler”,
“级别”:“notset”,
“格式化程序”:“json”,
},
},
‘记录者’:{
':{
‘级别’:‘信息’,
‘处理者’:(‘控制台’,),
},
},
}
记录消息的示例::
{“名称”:“doporucovani-storage.couchbasetstorage”,“msg”:“连接到couchbase\%s”,“args”:[“http:\/\/localhost:8091\/bucket”],“levelname”:“info”,“levelno”:20,“module”:“couchbasetstorage”,“exc_text”:,“funcname”:“connect”,“created”:1541512363.4698207378,“msecs”:469.8207378387,“relativecreated”:2155.5094718933,“process”:19816,“message”:“connecting to couchbase\”http:\/\/localhost:8091\/bucket“,“asctime”:“2018-11-06 14:52:43”,“stack_text”:“}
它们被转换为*exc_text*和*stack_text*
是否要记录其他数据?代替*args*使用一个参数
作为“dict”,或使用*extra*参数或同时使用这两个参数::
logger.info(
“连接到couchbase”%(connection_string)s“,
{connection_string':conn_str,'attempts':attempts},
extra={msg_type':'db_connect'})
*extra*转换为*json*对象的属性。` dict`用于
字符串格式,它可以包含其他属性。将生成
消息:
{“msg”:“connecting to couchbase\”%(connection_string)s\”,“args”:{“connection_string”:“http:\/\/localhost:8091\/bucket”,“attempts”:2},“msg_type”:“db_connect”,“message”:“connecting to couchbase\”http:\/\/localhost:8091\/bucket\”,“asctime”:“2018-11-06 14:52:43”,“stack_text”:“,…}
记录日志并享受结构化日志。然而,文本日志仍然可用,因为没有魔力,它仍然是python的日志。
这取决于配置,所以对经典文本使用'logging.formatter'
日志:
2018-11-06 14:52:43信息连接到couchbase“http://localhost:8091/bucket”
许可证
----
3-clause bsd