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