1. 簡介
追蹤某些軟體執行時所發生事件的方法, 可以在**中呼叫日誌中某些方法來記錄發生的事情
2. 使用logging日誌系統四大元件
import os, time, logging, sys
from common.plugs.get_config import r_config
base_dir = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
if sys.platform == "win32":
env_conf_dir = os.path.join(base_dir, 'common/conf/env_config.ini').replace('/', '\\')
else:
env_conf_dir = os.path.join(base_dir, 'common/conf/env_config.ini')
log_path = r_config(env_conf_dir, "log", "log_path")
class log:
def __init__(self, log_path):
self.logname = os.path.join(log_path, '.log'.format(time.strftime('%y-%m-%d')))
def console_log(self, level, message):
# 建立乙個logger
logger = logging.getlogger()
logger.setlevel(logging.debug)
# 建立乙個handler,用於 debug 寫入日誌檔案
debug_file = logging.filehandler(self.logname, 'a+', encoding='utf-8')
debug_file.setlevel(logging.debug)
# 再建立乙個handler,用於輸出到控制台
ch = logging.streamhandler()
ch.setlevel(logging.debug)
# 定義handler的輸出格式
formatter = logging.formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
debug_file.setformatter(formatter)
ch.setformatter(formatter)
# 給logger新增handler
logger.addhandler(debug_file)
logger.addhandler(ch)
# 記錄一條日誌
if level == 'info':
logger.info(message)
elif level == 'debug':
logger.debug(message)
elif level == 'warning':
logger.warning(message)
elif level == 'error':
logger.error(message)
elif level == 'critical':
logger.critical(message)
logger.removehandler(ch)
logger.removehandler(debug_file)
debug_file.close()
def debug(self, message): #最詳細日誌資訊, 多用於問題診斷
self.console_log('debug', message)
def info(self, message): #僅次於debug, 多用於記錄關鍵點資訊, 確保程式按預期執行
self.console_log('info', message)
def warning(self, message): #低等級故障, 但程式仍能執行, 如磁碟空間不足警告
self.console_log('warning', message)
def error(self, message): #由於比warning嚴重的問題, 導致某些功能不能正常執行時的記錄
self.console_log('error', message)
def critical(self, message): 嚴重錯誤, 導致應用程式不能繼續執行時的記錄
self.console_log('critical', message)
if __name__ == '__main__':
log(log_path).info("adasd")
log(log_path).error("dsadasddasd")
'''
Logging模組的使用
logging模組,針對日誌操作的模組 logging模組可替代print函式的功能,並能將標準輸出輸入到日誌檔案儲存起來 且利用logging模組可部分替代debug功能 logging模組中有6個級別,分別是 notset 0debug 10info 20warning 30error 40cr...
logging模組的使用
coding utf 8 import os import time import logging import sys log dir1 os.path.join os.path.dirname os.path.dirname file logs today time.strftime y m d...
python模組使用之logging
日誌記錄python執行輸出的資訊 參考 簡單使用 filename 日誌檔案的儲存路徑。如果配置了些引數,將自動建立乙個filehandler作為handler filemode 日誌檔案的開啟模式。預設值為 a 表示日誌訊息以追加的形式新增到日誌檔案中。如果設為 w 那麼每次程式啟動的時候都會建...