用于向日志记录添加请求上下文的库

django-context-logging的Python项目详细描述


……image:: https://travis-ci.org/lorehov/django_context_logging.svg
:target: https://travis-ci.org/lorehov/django_context_logging
:alt: Build Status

########################
Django Context Logging
########################

``django_context_logging`` is a library for enriching logs records with 上下文
字段。典型的用法是在所有日志中添加一些请求id,以便使故障排除更加方便。此上下文由所有使用
``logging``的应用程序共享,透明。



=
=
用法
=
=



您有两个选项可以将上下文发送到日志系统:将上下文作为
记录中的额外字段插入,或将上下文附加到每个消息。

使用filter
==

此方法允许将字段传递给json格式化程序、日志服务器,或者使用格式字符串中的额外字段。代码块:

日志记录={
“版本”:1,
“格式化程序”:{
“额外”:{
“格式”:'%(levelname)s%(rid)s%(name)s%(message)s',
},
},
‘过滤器’:{
‘上下文过滤器’:{
’:‘django-context-logging.addContextFilter’,
‘默认值’:{'rid':无},
}
},
‘处理程序’:{
‘控制台’:{
‘类’:‘logging.streamhandler’,
‘过滤器’:['context-filter'],
},
},
'root':{
'handlers':['console',
'level':'debug',
},
}


注意三件事:格式字符串中的

*`%(rid)``用于记录来自
上下文的rid(用于请求id);
*``django_context_logging.addContextFilter``-将键从
context dict转换为logrecord的属性的筛选器;
*``` default':{'rid':none}``-我们的一些日志事件可能没有
context,例如在工作机启动时发出的日志。由于在logrecord
实例上缺少“rid”属性(在我们的示例中),因此不会记录所有这些日志。要解决此问题,我们提供“rid”的默认值。



代码块::

日志记录={
“版本”:1,
“格式化程序”:{
“附加”:{
“()”:“django_context_日志记录。addcontextformatter”
“格式”:“%(levelname)s%(name)s%(message)s”
},
},
'处理程序':{
'控制台':{
'类':'日志记录.流处理程序',
'格式化程序':'附加',
},
},
'根':{
'处理程序':['控制台',
'级别':'调试',
},
}

将所有上下文信息附加到每个日志。



下面是一个完整的例子:

…代码块:

等等。
log_context.pop('userid')




环境中的ELD。它还将在每次请求后清除
上下文。代码块:

middleware_classes=[
“django_context_logging.extractrequestcontextmiddleware”,
rest middlewares
]





*如果没有指定django_context_logging_extractor,ExtractrequestContextMiddleware将异常失败。


contributors
----

*lev orekhov`@lorehov<;https://github.com/lorehov>;`\br/>*ei tienne bersac`@bersace<;https://github.com/bersace>;。`_

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在TextView中对齐部分文本   带有iText和eTPKCS11的java PKCS#11签名。dll&SunPKCS11提供程序   java Intellij Idea找不到jar   java Chrome/Firefox和Jetty HTTPS   java我无法打包找不到的JavaFX应用程序模块   多线程Java:排序从异步任务检索的结果   java客户端/服务器socket不能与外部连接一起工作   java如何在单击“下一步”按钮时获取其他详细信息?   java组织。springframework。网状物客户RestTemplate应声明为@Bean,而plain@Autowired抛出错误   java如何绘制javax。摆动将ImageIcon转换为JavaFX。fxml呈现用户界面?   使用for循环的Java跟踪   java如何编码字符串以显示彩色文本(基于字符串中的前缀)   Java保存/打开文件对象   基于java复选框的搜索:使用尽可能多的“”动态生成准备好的语句作为选中复选框的计数   java为什么crawler4j随机挂起?