Django - 记录唯一ID

jef*_*eon 7 python django logging

我正在为每个传入的请求分配一个唯一的ID,并希望每当完成日志记录时自动将其包含在日志中(不在所有地方明确地包含它).我正在使用中间件在本地线程中生成并存储此唯一ID.

我想修改Django的日志格式化程序,直接包含这个唯一的ID:

LOGGING = {
    ...
    'formatters': {
        'full': {
            'format': '%(asctime)s %(levelname)s %(name)s - %(message)s',
        }
    }
    ...
} 
Run Code Online (Sandbox Code Playgroud)

如何在不显式添加每个日志语句的情况下将唯一的id组件添加到格式化程序中?

Vin*_*jip 5

使用a Filter:该技术在这篇文章中进行了介绍。尽管它指的是IP地址,但是您也可以轻松地使用该方法来记录唯一​​的请求ID。