python的logging模組簡單應用

2021-09-02 21:42:17 字數 3843 閱讀 5154

python3 標準庫自帶logging模組,使用的時候直接引用

寫log

import logging  # 引入logging模組

from logging.handlers import timedrotatingfilehandler

import os.path

import time

# 第一步,建立乙個logger

logger = logging.getlogger()

logger.setlevel(logging.info) # log等級總開關

# 第二步,建立乙個handler,用於寫入日誌檔案

rq = time.strftime('%y%m%d%h%m', time.localtime(time.time()))

log_path = os.path.dirname(os.getcwd()) + '/log/logs/'

log_name = log_path + rq + '.log'

logfile = log_name

fh = logging.filehandler(logfile, mode='w')

fh.setlevel(logging.debug) # 輸出到file的log等級的開關

# 第三步,定義handler的輸出格式

formatter = logging.formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")

#建立timedrotatingfilehandler物件

log_file_handler = timedrotatingfilehandler(filename="ds_update", when="d", interval=2, backupcount=2)

fh.setformatter(formatter)

# 第四步,將logger新增到handler裡面

logger.addhandler(fh)

# 日誌

# logger.debug('this is a logger debug message')

# logger.info('this is a logger info message')

# logger.warning('this is a logger warning message')

# logger.error('this is a logger error message')

# logger.critical('this is a logger critical message')

# filename:日誌檔名的prefix;

## when:是乙個字串,用於描述滾動週期的基本單位,字串的值及意義如下:

# 「s」: seconds

# 「m」: minutes

# 「h」: hours

# 「d」: days

# 「w」: week day (0=monday)

# 「midnight」: roll over at midnight

## interval: 滾動週期,單位有when指定,比如:when=』d』,interval=1,表示每天產生乙個日誌檔案

## backupcount: 表示日誌檔案的保留個數

如何引用logger方法?

data=

# 使用python自帶的字串格式化,不推薦

logger.info("%s data的值為:%s"%("hello world!!",data))

# 使用logger的格式化,推薦

logger.info("%s data的值為:%s","hello world!!",data)

logger.info("data:",data)

# 使用format函式,推薦

logger.info("{}data的值是:{}".format("hello,world!!!",data))

for i in range(1,20):

print(i)

logger.info("i的值為:%s,入參為:%s",i,data)

列印日誌如下:

2018-06-10 15:52:37,817 - showlog.py[line:11] - info: hello world!! data的值為:

2018-06-10 15:52:37,817 - showlog.py[line:13] - info: hello world!! data的值為:

2018-06-10 15:52:37,817 - showlog.py[line:14] - info: data:

2018-06-10 15:52:37,818 - showlog.py[line:16] - info: hello,world!!!data的值是:

2018-06-10 15:52:37,818 - showlog.py[line:19] - info: i的值為:1,入參為:

2018-06-10 15:52:37,818 - showlog.py[line:19] - info: i的值為:2,入參為:

2018-06-10 15:52:37,818 - showlog.py[line:19] - info: i的值為:3,入參為:

2018-06-10 15:52:37,818 - showlog.py[line:19] - info: i的值為:4,入參為:

2018-06-10 15:52:37,818 - showlog.py[line:19] - info: i的值為:5,入參為:

2018-06-10 15:52:37,818 - showlog.py[line:19] - info: i的值為:6,入參為:

2018-06-10 15:52:37,818 - showlog.py[line:19] - info: i的值為:7,入參為:

2018-06-10 15:52:37,818 - showlog.py[line:19] - info: i的值為:8,入參為:

2018-06-10 15:52:37,818 - showlog.py[line:19] - info: i的值為:9,入參為:

2018-06-10 15:52:37,819 - showlog.py[line:19] - info: i的值為:10,入參為:

2018-06-10 15:52:37,819 - showlog.py[line:19] - info: i的值為:11,入參為:

2018-06-10 15:52:37,819 - showlog.py[line:19] - info: i的值為:12,入參為:

2018-06-10 15:52:37,819 - showlog.py[line:19] - info: i的值為:13,入參為:

2018-06-10 15:52:37,820 - showlog.py[line:19] - info: i的值為:14,入參為:

2018-06-10 15:52:37,820 - showlog.py[line:19] - info: i的值為:15,入參為:

2018-06-10 15:52:37,820 - showlog.py[line:19] - info: i的值為:16,入參為:

2018-06-10 15:52:37,820 - showlog.py[line:19] - info: i的值為:17,入參為:

2018-06-10 15:52:37,820 - showlog.py[line:19] - info: i的值為:18,入參為:

2018-06-10 15:52:37,821 - showlog.py[line:19] - info: i的值為:19,入參為:

遞迴練習 shutil模組 logging模組

os模組 檢視乙個資料夾下的所有檔案,這個資料夾下面還有資料夾,不能用walk import os defshow file path name lst os.listdir path for name in name lst abs path os.path.join path,name if o...

使用python的logging模組

一 從乙個使用場景開始 開發乙個日誌系統,既要把日誌輸出到控制台,還要寫入日誌檔案 import logging 建立乙個logger logger logging.getlogger mylogger logger.setlevel logging.debug 建立乙個handler,用於寫入日誌...

Python中logging的使用

我們先來看一下函式式簡單配置 預設情況下python的logging模組將日誌列印到了標準輸出中,且只顯示了大於等於warning級別的日誌,這說明預設的日誌級別設定為warning 日誌級別等級critical error warning info debug 預設的日誌格式為日誌級別 logge...