#logging日誌列印模組
import
logging
from tools.project_path import *
class
mylog:
defmy_log(self,msg,level):
#定義乙個日誌收集器
my_logger =logging.getlogger()
#設定級別 不指定級別會預設收集和輸出warning級別以上的
my_logger.setlevel("
debug")
#設定輸出格式
formatter =logging.formatter(
"%(asctime)s -%(levelname)s - %(filename)s[line:%(lineno)d] %(levelname)s-日誌資訊:%(message)s")
#建立乙個我們自己的輸出渠道控制台
ch =logging.streamhandler()
ch.setlevel(
"debug")
ch.setformatter(formatter)
#指定輸出到檔案(追加寫入)
fh = logging.filehandler(log_path, encoding="
utf-8")
fh.setlevel(
"debug")
fh.setformatter(formatter)
#兩者對接
my_logger.addhandler(ch)
my_logger.addhandler(fh)
#收集日誌
if level == "
debug":
my_logger.debug(msg)
elif level == "
info":
my_logger.info(msg)
elif level == "
warning":
my_logger.warning(msg)
elif level == "
error":
my_logger.error(msg)
elif level == "
critical":
my_logger.critical(msg)
#關閉日誌收集器
my_logger.removehandler(ch)
my_logger.removehandler(fh)
defdebug(self,msg):
self.my_log(msg,
"debug")
definfo(self,msg):
self.my_log(msg,
"info")
defwarning(self,msg):
self.my_log(msg,
"warning")
deferror(self,msg):
self.my_log(msg,
"error")
defcritical(self,msg):
self.my_log(msg,
"critical")
if__name__ == '
__main__':
my_logger =mylog()
my_logger.debug("1
")my_logger.info("2
")my_logger.error("3
")
還有一種方式,把logging寫成配置檔案,然後去讀取配置
log.conf
[loggers]keys=root,infologger
[logger_root]
level=debug
handlers=consolehandler,filehandler
[logger_infologger]
handlers=consolehandler,filehandler
qualname=infologger
propagate=0
[handlers]
keys=consolehandler,filehandler
[handler_consolehandler]
class=streamhandler
level=info
formatter=form02
args=(sys.stdout,)
[handler_filehandler]
class=filehandler
level=info
formatter=form01
args=('
../logs/runlog.log
', 'a'
)[formatters]
keys=form01,form02
[formatter_form01]
format=%(asctime)s -%(levelname)s - %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
[formatter_form02]
format=%(asctime)s -%(levelname)s - %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
呼叫時,test_log.py
importlogging
import
logging.config
import
oscon_log='
./log.conf
'logging.config.fileconfig(con_log)
logging=logging.getlogger()
logging.info(
"test
")
日誌模組 logging模組
logging.debug 通常除錯時用到的日誌資訊 logging.info 證明事情按照預期的那樣工作 longging.warning 表明發生了意外,或者不就得將來發生的問題 如 磁碟滿了 軟體還是正常的工作 longging.error 由於更嚴重的問題導致軟體已經不能繼續執行某些功能 l...
logging日誌模組
日誌級別日誌輸出 將日誌輸出到控制台 log1.py 如下 import logging logging.basicconfig level logging.warning,format asctime s filename s line lineno d levelname s message s...
logging 日誌模組
什麼是日誌 無處不在的 所有的程式必須記錄日誌 給使用者看的 購物軟體 銀行卡給內部人員看的 給技術人員看的 計算器500個表示式 一些計算過程,或者是一些操作過程需要記錄下來 程式出現bug的時候,來幫助我們記錄過程 排除錯誤 給非技術人員看的 學校,公司的軟體 誰在什麼時候做了什麼事兒,刪除操作...