python日誌模組 封裝

2021-09-27 15:29:03 字數 3162 閱讀 9017

import logging,time,os,sys

'''使用方法:在project主目錄下新建lib目錄,將logger_fengzhuang.py檔案複製進去

呼叫方式:

logger = logger(file_or_terminal="file", level="debeg").getlogger()

# logger = logger(file_or_terminal="terminal").getlogger()

# logger = logger(file_or_terminal="all").getlogger()

logger.debug("debug")

logger.info("info")

logger.error("info")

# file_or_terminal == terminal: 只列印到命令列

# file_or_terminal == file: 只列印到日誌檔案

# file_or_terminal == all: 同時列印到日誌檔案和命令列

# level = critical','error','warning','info','debug

'''class

logger()

:def

__init__

(self, file_or_terminal=

"file"

, level=

"error"):

self.logger = logging.getlogger(

) self.logger.setlevel(level)

info =

''' file_or_terminal == terminal: 只列印到命令列

file_or_terminal == file: 只列印到日誌檔案

file_or_terminal == all: 同時列印到日誌檔案和命令列

level = critical','error','warning','info','debug

'''prodir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

resultpath = os.path.join(prodir,

'result'

) result_log_path = os.path.join(resultpath,

'log'

) result_html_path = os.path.join(resultpath,

'html報告'

) log_month_dir = os.path.join(result_log_path, time.strftime(

"%y-%m"))

self.log_day_log_path = os.path.join(log_month_dir, time.strftime(

"%y-%m-%d")+

'.log'

)# 建立result資料夾及裡面的日期時間資料夾、建立log資料夾、建立"html報告"資料夾、當天日期命名的log資料夾(若不存在)

for i in

[resultpath, result_log_path, result_html_path, log_month_dir]:if

not os.path.exists(i)

: os.mkdir(i)

## print(info)

time.sleep(

0.1)

self.file_or_terminal = file_or_terminal

defgetlogger

(self)

: fm = logging.formatter(fmt=

'%(asctime)s %(filename)s[%(lineno)d] %(levelname)s %(message)s %(module)s %(funcname)s'

, datefmt=

"%y-%m-%d %x"

)def

only_file()

: fh = logging.filehandler(os.path.join(self.log_day_log_path)

) fh.setformatter(fm)

self.logger.addhandler(fh)

return self.logger

defonly_terminal()

: ch = logging.streamhandler(

) ch.setformatter(fm)

self.logger.addhandler(ch)

return self.logger

deffile_and_terminal()

: only_file(

) only_terminal(

)return self.logger

choice_dict =

if choice_dict.get(self.file_or_terminal)

:return choice_dict.get(self.file_or_terminal)()

else

:return choice_dict.get(

"file")(

)if __name__ ==

'__main__'

:# logger = logger().getlogger()

logger = logger(

"all"

).getlogger(

)# logger = logger("terminal", "info").getlogger()

# logger = logger("file", "debug").getlogger()

logger.debug(

"debug"

) logger.info(

"info"

) logger.error(

"info"

)

封裝好的日誌模組

import logging import time import osfrom common.file path import logs path now time.strftime y m d time.localtime time.time log path os.path.join logs...

Python logging日誌模組 封裝完善

import logging import os class log 模組化使用 建立乙個logger物件,並且進行初始化設定 將logger物件進行返回,方便使用 notset debug info warning error critical 注意這裡有個大坑,notset不是顯示所有訊息,而是...

Python學習二 公共日誌記錄模組封裝

python安裝及配置略,本文前預設已經配置好python環境。開啟cmd,輸入python,出現以下畫面表示python安裝成功。描述 日誌輸入封裝 版本 v1.0 import logging.handlers class logger logging.logger def init self,...