logging日誌模組

2021-09-29 12:57:04 字數 2427 閱讀 1853

timedrotatingfilehandler

使用配置檔案

參考

# encoding: utf-8

# 建立logger

import logging.handlers

import os

from time import sleep

defcreate_logger

(logger_name, rotate_type=

"file"):

logger = logging.getlogger(logger_name)

logger.setlevel(logging.info)

# 建立handler,用於寫入檔案

base_dir = os.path.abspath(os.path.dirname(__file__)

) base_dir = os.path.join(base_dir,

"logs"

) logs_dir = os.path.join(base_dir,

"{}.log"

.format

(logger_name)

)if rotate_type ==

"time"

:# 按時間分割日誌(天)

file_handler = logging.handlers.timedrotatingfilehandler(logs_dir,

'd',1)

else

:# 按檔案分割日誌(保留3個備份,每個1024*8個位元組)

file_handler = logging.handlers.rotatingfilehandler(logs_dir, mode=

'a', maxbytes=

1024*8

, backupcount=3)

file_handler.setlevel(logging.info)

# 日誌等級:info

# 建立handler,用於輸出到控制台

console_handler = logging.streamhandler(

) console_handler.setlevel(logging.info)

# 日誌等級:info

# 定義handler輸出格式

formatter = logging.formatter(

'%(asctime)-15s %(threadname)-10s %(filename)30s[line:%(lineno)3d] %(levelname)s %(message)s'

) file_handler.setformatter(formatter)

console_handler.setformatter(formatter)

logger.addhandler(file_handler)

logger.addhandler(console_handler)

return logger

logger = create_logger(

"task"

)# # 測試日誌分割模式

# flag = 0

# while true:

# sleep(0.1)

# flag += 1

# logger.warning("row: {}".format(flag))

class logging.handlers.rotatingfilehandler(filename,mode ='a',maxbytes = 0,backupcount = 0,encoding = none,delay = false )

以檔案分割(迭代)日誌,當乙個日誌檔案寫滿,則往新檔案寫入。

示例

logging.handlers.rotatingfilehandler(logs_dir, mode=

'a', maxbytes=

1024*8

, backupcount=

3)

class logging.handlers.timedrotatingfilehandler(filename,when ='h',interval = 1,backupcount = 0,encoding = none,delay = false,utc = false,attime = none )

以指定時間來分割(迭代)日誌,每個日誌檔案儲存指定時間範圍的日誌記錄。日誌檔案分割(迭代)是根據when和 interval的乘積。

interval:間隔格式

backupcount:最多將保留指定數量的檔案

示例

logging.handlers.timedrotatingfilehandler(logs_dir,

'd',

1)

日誌模組 logging模組

logging.debug 通常除錯時用到的日誌資訊 logging.info 證明事情按照預期的那樣工作 longging.warning 表明發生了意外,或者不就得將來發生的問題 如 磁碟滿了 軟體還是正常的工作 longging.error 由於更嚴重的問題導致軟體已經不能繼續執行某些功能 l...

logging日誌模組

日誌級別日誌輸出 將日誌輸出到控制台 log1.py 如下 import logging logging.basicconfig level logging.warning,format asctime s filename s line lineno d levelname s message s...

logging 日誌模組

什麼是日誌 無處不在的 所有的程式必須記錄日誌 給使用者看的 購物軟體 銀行卡給內部人員看的 給技術人員看的 計算器500個表示式 一些計算過程,或者是一些操作過程需要記錄下來 程式出現bug的時候,來幫助我們記錄過程 排除錯誤 給非技術人員看的 學校,公司的軟體 誰在什麼時候做了什麼事兒,刪除操作...