自定義乙個python日誌類

2021-08-17 19:52:35 字數 1655 閱讀 5535

本文介紹如何寫乙個python日誌類,用來輸出不同級別的日誌資訊到不同的日誌檔案裡。

1、將不同級別的日誌輸出到不同的日誌檔案裡,方便自己排查問題。

2、生成的日誌放在專案根目錄的logs資料夾裡

3、日誌類支援debug,info,warning,error,critical五種級別日誌。

4、日誌輸出格式 時間日期,日誌級別,日誌資訊

# coding:utf8

'''該日誌類可以把不同級別的日誌輸出到不同的日誌檔案中

'''import os

import sys

import logging

class

logger:

def__init__

(self):

handlers =

self.__loggers = {}

loglevels = handlers.keys()

fmt = logging.formatter('%(asctime)s [%(levelname)s]: %(message)s')

for level in loglevels:

#建立logger

logger = logging.getlogger(str(level))

logger.setlevel(level)

#建立hander用於寫日日誌檔案

log_path = os.path.abspath(handlers[level])

fh = logging.filehandler(log_path)

#定義日誌的輸出格式

fh.setformatter(fmt)

fh.setlevel(level)

#給logger新增hander

logger.addhandler(fh)

self.__loggers.update()

definfo

(self, message):

self.__loggers[logging.info].info(message)

deferror

(self, message):

self.__loggers[logging.error].error(message)

defwarning

(self, message):

self.__loggers[logging.warning].warning(message)

defdebug

(self, message):

self.__loggers[logging.debug].debug(message)

defcritical

(self, message):

self.__loggers[logging.critical].critical(message)

if __name__ == "__main__":

logger = logger()

logger.debug("thisisdebug")

logger.info("info")

logger.warning("warning")

logger.error("error")

logger.critical("critical")

自定義乙個vector向量類

c 標準模板庫stl給出了vector,list,deque,stack,set,map等模板類,平時我們直接使用居多,對於類內部怎麼實現不在意。現在以向量類vector為例,簡單自定義 其uml vetor 陣列名ele t 陣列目前大小size int 陣列容量cap int vector 用指...

JS自定義乙個Map類

例子1 定義簡單map function getmap map get function key map remove function key map keyset function if ret else return map var map getmap map.put 395 12,21,5...

C 自定義乙個Date類

學習了c 的一些類的預設成員函式,運算子過載等內容後,自已定義並實現了乙個較為完整的date類 test.cpp class date void showdate date 析構函式 date const date d 拷貝建構函式 date operator const date d 賦值運算子過...