logging模組日誌記錄

2021-09-27 09:24:41 字數 1738 閱讀 6041

# coding:utf-8

import logging, os

from time import strftime

now = strftime("%y-%m-%d.%h.%m.%s.")

class log(object):

def __init__(self):

# 檔案的命名

self.logname = os.path.join(os.path.dirname(__file__), now + 'test.log')

self.logger = logging.getlogger()

self.logger.setlevel(logging.debug)

# 日誌輸出格式

self.formatter = logging.formatter(

fmt="%(asctime)s %(levelname)s :%(message)s",

datefmt="%y-%m-%d %h:%m:%s"

)def __console(self, level, message):

# 建立乙個 filehandler,用於寫到本地

# fh = logging.filehandler(self.logname, 'a') # 追加模式 這個是python2的

fh = logging.filehandler(self.logname, 'a', encoding='utf-8') # 這個是 python3的

fh.setlevel(logging.debug)

fh.setformatter(self.formatter)

self.logger.addhandler(fh)

# 建立乙個 streamhandler,用於輸出到控制台

ch = logging.streamhandler()

ch.setlevel(logging.debug)

ch.setformatter(self.formatter)

self.logger.addhandler(ch)

if level == 'info':

self.logger.info(message)

elif level == 'debug':

self.logger.debug(message)

elif level == 'warning':

self.logger.warning(message)

elif level == 'error':

self.logger.error(message)

# 這兩行**是為了避免日誌輸出重複問題

self.logger.removehandler(ch)

self.logger.removehandler(fh)

# 關閉開啟的檔案

fh.close()

def debug(self, message):

self.__console('debug', message)

def info(self, message):

self.__console('info', message)

def warning(self, message):

self.__console('warning', message)

def error(self, message):

self.__console('error', message)

日誌模組 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的時候,來幫助我們記錄過程 排除錯誤 給非技術人員看的 學校,公司的軟體 誰在什麼時候做了什麼事兒,刪除操作...