python日誌模組

2022-06-06 09:51:11 字數 2230 閱讀 4998

python的日誌模組使用logging,如果想要輸出符合自己的預期,需要重新定義,廢話不多說,直接貼**。

#

encoding: utf -8

from logging.handlers import

timedrotatingfilehandler

import

logging

import

osimport

inspect

#呼叫方法log.debug('logname.log','輸出內容')

this_file =inspect.getfile(inspect.currentframe())

path =os.path.abspath(os.path.dirname(this_file))

class

log:

def__init__

(self):

if os.path.isdir('

%s\\log

'%path): #

建立log資料夾

pass

else

: os.mkdir(

'%s\\log

'%path)

defdebug(self,logname,kwarg):

logfilepath = '

%s\\log\\%s

'%(path,logname)

logger = logging.getlogger("

yourname")

logger.setlevel(logging.debug)

handler =timedrotatingfilehandler(logfilepath,

when="

midnight",

interval=1,

backupcount=20)

formatter = logging.formatter('

%(asctime)s %(levelname)s %(message)s')

handler.setformatter(formatter)

logger.addhandler(handler)

logger.debug('%s

'%(kwarg))

logger.removehandler(handler)

deferror(self,logname,kwarg):

logfilepath = '

%s\\log\\%s

'%(path,logname)

logger = logging.getlogger("

yourname")

logger.setlevel(logging.error)

handler =timedrotatingfilehandler(logfilepath,

when="

midnight",

interval=1,

backupcount=20)

formatter = logging.formatter('

%(asctime)s %(levelname)s %(message)s')

handler.setformatter(formatter)

logger.addhandler(handler)

logger.error('%s

'%(kwarg))

logger.removehandler(handler)

handler = timedrotatingfilehandler(logfilepath, when="midnight", interval=1, backupcount=20) 定義寫入日誌的策略:

1.每天乙個日誌檔案。

2.超過20個,刪除最早生成的日誌。

formatter = logging.formatter('%(asctime)s %(levelname)s %(message)s') 定義日誌輸出的格式

log().debug('

test.log

','hello world...

')

日誌輸出:

python日誌模組

logging.debug 10 logging.info 20 logging.warning 30 logging.error 40 logging.critical 50預設級別為warning 預設輸出位置為控制台 import logging logging.basicconfig 可用引...

python 日誌模組

在軟體或者系統發生錯誤時可以通過日誌快速定位到錯誤,從而定位問題,解決問題。logging模組提供的日誌記錄函式所使用的日誌器設定的日誌級別是warning,因此只有warning級別的日誌記錄以及大於它的error和critical級別的日誌記錄被輸出了,而小於它的debug和info級別的日誌記...

python 日誌模組

import logging logging.basicconfig level logging.debug,format asctime s filename s line lineno d levelname s message s datefmt a,d b y h m s filename ...