django中日志使用的基本配置


LOGGING = {
    'version': 1,  # 使用的python內置的logging模塊,那么python可能會對它進行升級,所以需要寫一個版本號,目前就是1版本
    'disable_existing_loggers': False,  # 是否去掉目前項目中其他地方中以及使用的日志功能,但是將來我們可能會引入第三方的模塊,里面可能內置了日志功能,所以盡量不要關閉。
    'formatters': {  # 日志記錄格式
        'verbose': {  # levelname等級,asctime記錄時間,module表示日志發生的文件名稱,lineno行號,message錯誤信息
            'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
        },
    },
    'filters': {  # 過濾器:可以對日志進行輸出時的過濾用的
        'require_debug_true': {  # 在debug=True下產生的一些日志信息,要不要記錄日志,需要的話就在handlers中加上這個過濾器,不需要就不加
            '()': 'django.utils.log.RequireDebugTrue',
        },
        'require_debug_false': {  # 和上面相反
            '()': 'django.utils.log.RequireDebugFalse',
        },
    },
    'handlers': {  # 日志處理方式,日志實例
        'console': {  # 在控制台輸出時的實例
            'level': 'DEBUG',  # 日志等級;debug是最低等級,那么只要比它高等級的信息都會被記錄
            'filters': ['require_debug_true'],  # 在debug=True下才會打印在控制台
            'class': 'logging.StreamHandler',  # 使用的python的logging模塊中的StreamHandler來進行輸出
            'formatter': 'simple'
        },
        'file': {
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            # 日志位置,日志文件名,日志保存目錄必須手動創建
            'filename': os.path.join(os.path.dirname(BASE_DIR), "logs/luffy.log"),  # 注意,你的文件應該有讀寫權限。
            # 日志文件的最大值,這里我們設置300M
            'maxBytes': 300 * 1024 * 1024,
            # 日志文件的數量,設置最大日志數量為10
            'backupCount': 10,
            # 日志格式:詳細格式
            'formatter': 'verbose',
            'encoding': 'utf-8',  # 設置默認編碼,否則打印出來漢字亂碼
        },
    },
    # 日志對象
    'loggers': {
        'django': {  # 和django結合起來使用,將django中之前的日志輸出內容的時候,按照我們的日志配置進行輸出,
            'handlers': ['console', 'file'],  # 將來項目上線,把console去掉
            'propagate': True,
            # 冒泡:是否將日志信息記錄冒泡給其他的日志處理系統,工作中都是True,
            # 不然django這個日志系統捕獲到日志信息之后,其他模塊中可能也有日志記錄功能的模塊,就獲取不到這個日志信息了
        },
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM