最寫成為為類的格式
乙個簡單的log日誌生成
import logging
import datetime
import os
os.path.join()
連線兩個或更多的路徑名元件 .會自動新增 』/』,
os.getcwd()
獲取當前路徑的絕對路徑
file_dir = os.path.join(os.getcwd(),
'log'
)#監測路徑資料夾是否存在
ifnot os.path.exists(file_dir)
:#不存在則建立
os.mkdir(file_dir)
log_path = file_dir
log_name = log_path +
"/"+ 'read_faultwarning.log『
# 獲取logger例項,如果引數為空則返回root logger
logger = logging.getlogger(
"bacnet_read_db"
)# 指定日誌等級
logger.setlevel(logging.debug)
建立乙個handler,輸出到螢幕,當執行指令碼始寫入的的log內容能在視窗顯示console_handler = logging.streamhandler(
)console_handler.setlevel(logging.debug)
建立乙個handler 用於寫入日誌磁碟檔案
maxbytes
已kb為單位設定log日誌最大占用空間 ,超過這個大小將該日誌檔案儲存備份,日誌寫入另乙個新的日誌檔案
backupcount
設定最多可備份的日誌數量
#file_handler = logging.filehandler(self.log_name, 'w')
#file_handler = timedrotatingfilehandler(self.log_name,when='d',encoding="utf-8")
file_handler = logging.handlers.rotatingfilehandler(log_name, mode=
'w', maxbytes=
402653184
, backupcount=3)
file_handler.setlevel(logging.debug)
#定義handler的輸出格式 配置日誌順序、結構和內容
format_str = logging.formatter(
'%(asctime)s - %(message)s'
)# 設定日誌格式
#將日誌輸出格式 加入到輸入到螢幕的handler與寫入檔案的handler
console_handler.setformatter(format_str)
file_handler.setformatter(format_str)
#給logger日誌 新增上handler
logger.addhandler(console_handler)
logger.addhandler(file_handler)
# -*- coding: utf-8 -*-
#!/usr/bin/python
#coding:utf-8
import logging
import datetime
import os
from logging.handlers import timedrotatingfilehandler
class
log():
def__init__
(self)
: self.logname =
"bacnet_read_db.log"
# 拼接路徑
file_dir = os.path.join(os.getcwd(),
'log')if
not os.path.exists(file_dir)
: os.mkdir(file_dir)
self.log_path = file_dir
self.log_name = self.log_path +
"/"+ self.logname
# 獲取logger例項,如果引數為空則返回root logger
self.logger = logging.getlogger(
"bacnet_read_db"
)# 指定日誌等級
self.logger.setlevel(logging.debug)
#建立乙個handler,輸出到螢幕
console_handler = logging.streamhandler(
) console_handler.setlevel(logging.debug)
# 再建立乙個handler 用於寫入日誌磁碟檔案
#file_handler = logging.filehandler(self.log_name, 'w')
#file_handler = timedrotatingfilehandler(self.log_name,when='d',encoding="utf-8")
file_handler = logging.handlers.rotatingfilehandler(self.log_name, mode=
'w', maxbytes=
402653184
, backupcount=3)
file_handler.setlevel(logging.debug)
#定義handler的輸出格式 配置日誌順序、結構和內容
format_str = logging.formatter(
'%(asctime)s - %(message)s'
)# 設定日誌格式
#將日誌輸出格式 加入到輸入到螢幕的handler與寫入檔案的handler
console_handler.setformatter(format_str)
file_handler.setformatter(format_str)
#給logger日誌 新增上handler
self.logger.addhandler(console_handler)
self.logger.addhandler(file_handler)
defgetlog
(self)
:return self.logger
#簡單版本
# -*- coding: utf-8 -*-
#!/usr/bin/python
#coding:utf-8
import logging
import os
from logging.handlers import timedrotatingfilehandler
deflogs()
:#拼接路徑
log_name = os.path.join(
'../'
,'logs/insert_data.log'
) logger = logging.getlogger(__name__)
# 指定日誌等級
logger.setlevel(level=logging.info)
# 建立乙個handler 用於寫入日誌磁碟檔案
handler = logging.handlers.rotatingfilehandler(log_name, mode=
'w', maxbytes=
1024
*1024
*100
, backupcount=3)
handler.setlevel(logging.debug)
# 定義handler的輸出格式 配置日誌順序、結構和內容
formatter = logging.formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)# 將日誌輸出格式 加入到輸入到螢幕的handler與寫入檔案的handler
handler.setformatter(formatter)
# 給logger日誌 新增上handler
logger.addhandler(handler)
return logger
Python之路 日誌操作
使用logging模組來寫日誌 import logging logging.basicconfig level logging.warning,format asctime s filename s line lineno d levelname s message s 直接使用logging來寫...
python中logging日誌模組操作
用python寫 的時候,在想看的地方寫個print xx 就能在控制台上顯示列印資訊,這樣子就能知道它是什麼了,但是當我需要看大量的地方或者在乙個檔案中檢視的時候,這時候print就不大方便了,所以python引入了logging模組來記錄我想要的資訊。import logging 引入loggi...
python日誌 python日誌處理
一 日誌概念 日誌是一種可以追蹤某些軟體執行時所發生事件的方法。軟體開發人員可以向他們的 中 呼叫日誌記錄相關的方法來表明發生了某些事情。乙個事件可以用乙個可包含可選變數資料 的訊息來描述。此外,事件也有重要性的概念,這個重要性也可以被稱為嚴重性級別 level python自身也提供了乙個用於記錄...