【发布时间】:2011-12-19 07:12:22
【问题描述】:
我为每个传入的请求分配一个唯一 ID,并希望在记录完成时自动将其包含在日志中(无需在所有位置明确包含它)。我正在使用中间件生成此唯一 ID 并将其存储在本地线程中。
我想修改 Django 的日志格式化程序以直接包含这个唯一 ID:
LOGGING = {
...
'formatters': {
'full': {
'format': '%(asctime)s %(levelname)s %(name)s - %(message)s',
}
}
...
}
如何在不显式添加每个日志语句的情况下将唯一 id 组件添加到格式化程序?
【问题讨论】:
-
我猜你将不得不编写一个自定义格式化程序,它使用类变量来生成 id 并在 LOGGING 字典中使用它
-
对于希望将其与 Apache 的
mod_unique_id和django-log-unique-id一起使用的人 - 您需要添加 Django 设置:LOG_REQUEST_ID_HEADER = "UNIQUE_ID"加上 Apache 配置:RequestHeader set UNIQUE_ID "%{UNIQUE_ID}e"