python日誌操作

2021-10-23 03:16:34 字數 4339 閱讀 6426

最寫成為為類的格式

乙個簡單的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自身也提供了乙個用於記錄...