python 如何對logging日誌封裝

2022-10-04 13:24:38 字數 2339 閱讀 4924

作者:做夢的人(小姐姐)

出處:因為最近在做平台,發現有同事,使用django封裝了日誌模組,看樣子很簡單,準備自己單獨做了乙個日誌封裝模板,對於python不熟練的我,封裝部分參考了多個博主的內容,形成自己的日誌模組,內容如下:

封裝部分

建立乙個logutil2的py檔案

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @author: zhangjun

# @date  : 2018/7/26 9:20

# @desc  : description

import logging

import logging.handlers

import os

import time

class logs(object):

&nbsjajmxup;   def __init__(self):

self.logger = logging.getlogger("")

# 設定輸出的等級

levels =

# 建立檔案目錄

logs_dir="logs2"

if os.path.exists(logs_dir) and os.path.isdir(logs_dir):

pass

else:

os.mkdir(logs_dir)

# 修改log儲存位置

timestamp=time.strftime("%y-%m-%d",time.localtime())

logfilename='%s.txt' % timestamp

&n   logfilepath=os.path.join(logs_dir,logfilename)

rotatingfilehandler = logging.handlers.rotatingfilehandler(filename =logfilepath,

&www.cppcns.comnbsp;    maxbytes = 1024 * 1024 * 50,

backupcount = 5)

# 設定輸出格式

formatter = logging.formatter('[%(asctime)s] [%(levelname)s] %(message)s', '%y-%m-%d %h:%m:%s')

rotatingfilehandler.setformatter(formatter)

# 控制台控制代碼

console = logging.streamhandler()

console.setlevel(logging.notset)

console.setformatter(formatter)

# 新增內容到日誌控制代碼中

self.logger.addhandler(rotatingfilehandler)

self.logger.addhandler(console)

self.logger.setlevel(logging.notset)

def info(self, message):

self.logger.info(message)

def debug(self, message):

self.logger.debug(messa

def warning(self, message):

self.logger.warning(message)

def error(self, message):

self.logger.error(message)

2.呼叫模組

建立另外乙個py檔案

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @author: zhangjun

# @date  : 2018/7/26 9:21

# @desc  : description

import logging

logger = logging.getlogger(__name__)

import logutil2

if __name__ == '__main__':

logger=logutil2.logs()

logger.info("this is info")

logger.debug("this is debug")

logger.error("this is error")

logger.warning("this is warning")

結果展示:

1.控制台輸出

2.日誌檔案展示

建立目錄

日誌檔案的寫入

詳解Python中的日誌模組logging

許多應用程式中都會有日誌模組,用於記錄系統在執行過程中的一些關鍵資訊,以便於對系統的執行狀況進行跟蹤。在.net平台中,有非常著名的第三方開源日誌元件log4net,c 中,有人們熟悉的log4cpp,而在python中,我們不需要第三方的日誌元件,因為它已經為我們提供了簡單易用 且功能強大的日誌模...

如何對python的字典進行排序

我們知道python的內建dictionary資料型別是無序的,通過key來獲取對應的value。可是有時我們需要對dictionary中 的item進行排序輸出,可能根據key,也可能根據value來排。到底有多少種方法可以實現對dictionary的內容進行排序輸出呢?下面摘取了 一些精彩的解決...

python中如何對dict物件進行排序

有程式 mydict for key in sorted mydict.iterkeys print s s key,mydict key 輸出結果為 alan 2 bob 1 carl 40 danny 3 使用key來進行dict的排序 keylist mydict.keys keylist.s...