1. 程式人生 > >Django logging配置

Django logging配置

efault RR 項目 ons span pan HA utf-8 cti

我寫Django項目常用的logging配置。

LOGGING = {
    version: 1,
    disable_existing_loggers: False,
    formatters: {
        standard: {
            format: [%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]
                      [%(levelname)s][%(message)s]
        },
        
simple: { format: [%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s }, collect: { format: %(message)s } }, filters: { require_debug_true: { (): django.utils.log.RequireDebugTrue, }, },
handlers: { console: { level: DEBUG, filters: [require_debug_true], # 只有在Django debug為True時才在屏幕打印日誌 class: logging.StreamHandler, formatter: simple }, default: { level: INFO, class
: logging.handlers.RotatingFileHandler, # 保存到文件,自動切 filename: os.path.join(BASE_LOG_DIR, "xxx_info.log"), # 日誌文件 maxBytes: 1024 * 1024 * 50, # 日誌大小 50M backupCount: 3, formatter: standard, encoding: utf-8, }, error: { level: ERROR, class: logging.handlers.RotatingFileHandler, # 保存到文件,自動切 filename: os.path.join(BASE_LOG_DIR, "xxx_err.log"), # 日誌文件 maxBytes: 1024 * 1024 * 50, # 日誌大小 50M backupCount: 5, formatter: standard, encoding: utf-8, }, collect: { level: INFO, class: logging.handlers.RotatingFileHandler, # 保存到文件,自動切 filename: os.path.join(BASE_LOG_DIR, "xxx_collect.log"), maxBytes: 1024 * 1024 * 50, # 日誌大小 50M backupCount: 5, formatter: collect, encoding: "utf-8" } }, loggers: { # 默認的logger應用如下配置 ‘‘: { handlers: [default, console, error], # 上線之後可以把‘console‘移除 level: DEBUG, propagate: True, }, # 名為 ‘collect‘的logger還單獨處理 collect: { handlers: [console, collect], level: INFO, } }, }

Django logging配置