python日誌按天分割,儲存近乙個月日誌

2022-07-30 14:30:22 字數 1345 閱讀 3975

import os

import logging

import re

from logging.handlers import timedrotatingfilehandler

def setup_log(log_name):

# 建立logger物件。傳入logger名字

log_ger = logging.getlogger(log_name)

log_path = os.path.join(os.getcwd(),log_name)

# 設定日誌記錄等級

log_ger.setlevel(logging.info)

# interval 滾動週期,

# when="midnight", interval=1 表示每天0點為更新點,每天生成乙個檔案

# backupcount 表示日誌儲存個數

file_handler = timedrotatingfilehandler(

filename=log_path, when="midnight", interval=1, backupcount=30

)# filename="mylog" suffix設定,會生成檔名為mylog.2020-02-25.log

file_handler.suffix = "%y-%m-%d.log"

# extmatch是編譯好正規表示式,用於匹配日誌檔名字尾

# 需要注意的是suffix和extmatch一定要匹配的上,如果不匹配,過期日誌不會被刪除。

file_handler.extmatch = re.compile(r"^\d-\d-\d.log$")

# 定義日誌輸出格式

file_handler.setformatter(

logging.formatter(

"[%(asctime)s] [%(process)d] [%(levelname)s] - %(module)s.%(funcname)s (%(filename)s:%(lineno)d) - %(message)s"))

log_ger.addhandler(file_handler)

return log_ger

print(os.getcwd())

if __name__ == "__main__":

logger = setup_log("mylog")

logger.info("this is info message")

logger.warning("this is a warning message")

# 如果其他py檔案想使用此配置日誌,只需 logging.getlogger(日誌的名字) 即可

nginx 按天分割日誌

nginx預設的日誌是統一寫到 安裝目錄的log下的 訪問日誌是 access.log,錯誤日誌是error.log 而且並沒有提供乙個可配置的地方,對於生產環境,日誌都集中在一塊兒,沒過幾天日誌檔案就可以大到幾個g,只能是使用作業系統的定時任務,自己寫指令碼定時執行,將log日誌進行切割。定義日誌...

logging日誌按天分割

說我們沒有為這個logger指定handler,它不知道要怎麼處理日誌,要輸出到 去。那我們就給他加乙個handler吧,handler的種類有很多,常用的有4種 logging.streamhandler 控制台輸出 logging.filehandler 檔案輸出 logging.handler...

tomcat日誌按天分割(cronolog)

安裝方式一 shell sudo yum install cronolog 或shell sudo apt get install cronolog 驗證cronolog shell which cronolog 安裝方式二 shell wget shell tar zxf cronolog 1.6...