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...