1. 程式人生 > 實用技巧 >配置工程日誌

配置工程日誌

1. 配置工程日誌

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,  # 是否禁用已經存在的日誌器
    'formatters': {  # 日誌資訊顯示的格式
        'verbose': {
            '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': {  # django在debug模式下才輸出日誌
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {  # 日誌處理方法
        'console': {  # 向終端中輸出日誌
            'level': 'INFO',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'file': {  # 向檔案中輸出日誌
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(os.path.dirname(BASE_DIR), 'logs/meiduo.log'),  # 日誌檔案的位置
            'maxBytes': 300 * 1024 * 1024,
            'backupCount': 10,
            'formatter': 'verbose'
        },
    },
    'loggers': {  # 日誌器
        'django': {  # 定義了一個名為django的日誌器
            'handlers': ['console', 'file'],  # 可以同時向終端與檔案中輸出日誌
            'propagate': True,  # 是否繼續傳遞日誌資訊
            'level': 'INFO',  # 日誌器接收的最低日誌級別
        },
    }
}


2. 準備日誌檔案目錄

3. 日誌記錄器的使用

4. Git管理工程日誌

開發過程中,產生的日誌資訊不需要程式碼倉庫進行管理和記錄

建立程式碼倉庫時,生成的忽略檔案中已經預設忽略掉了*.log。

問題:

  • logs檔案目錄需求被Git倉庫記錄和管理。
  • 當把*.log都忽略掉後,logs檔案目錄為空。
  • 但是,Git是不允許提交一個空的目錄到版本庫上的。

解決:

  • 在空檔案目錄中建立一個.gitkeep檔案,然後即可提交。

配置完成後:執行程式,測試結果

  1. 本專案最低日誌等級設定為:INFO
  2. 建立日誌記錄器的方式:
logger = logging.getLogger('django')
3,日誌記錄器的使用:
logger.info('測試logging模組info')

在日誌loggers選項中可以指定多個日誌記錄器