小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python logging 的簡單使用

 Jcstone 2022-02-10

    本文采用簡單的方法工廠,配置根logger,實現(xiàn)logging 的簡單調用,方便代碼調試,記錄并在控制臺顯示py文件和函數、行號及日志信息。

1、創(chuàng)建LogHelper.py    

LogHelper.py主要是對根logger設置日志文件,定義輸出格式。日志文件為當前日期為文件名的txt文件,位于應用程序目錄的logs子目錄

import logging

import logging.handlers

import os

import time

# 初始化logger

def InitLogger(logger):

    logs_dir = "logs"

    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())

    log_filename = '%s.txt' % timestamp

    log_filepath = os.path.join(logs_dir, log_filename)

    FileHandler = logging.handlers.RotatingFileHandler(filename=log_filepath,

                                                       maxBytes=1024 * 1024 * 50,

                                                       encoding='utf-8',

                                                       backupCount=5)

    # 設置輸出格式

    formatter = logging.Formatter(

        '%(asctime)s - %(filename)s[line:%(lineno)d] - %(funcName)s - %(levelname)s: %(message)s')

    FileHandler.setFormatter(formatter)

    # 控制臺句柄

    console = logging.StreamHandler()

    console.setLevel(logging.NOTSET)

    console.setFormatter(formatter)

    # 添加內容到日志句柄中

    logger.addHandler(FileHandler)

    logger.addHandler(console)

    logger.setLevel(logging.NOTSET)

    return logger



2、根Logger初始化(配置)

主程序引用logging和LogHelper。通過工廠方法獲取Logger實例logging.getLogger([name=None]),直接調用LogHelper.InitLogger方法:

LogHelper.InitLogger(logging.getLogger(""))

LogHelper.InitLogger(logging.getLogger())

注:logging.getLogger方法指定name,返回一個名稱為name的Logger實例。如果再次使用相同的名字,是實例化一個對象。未指定name,返回Logger實例,名稱是root,即根Logger。

 3、logging調用

由于初始化未指定name,返回根logger。主模塊初始化根Logger后,以后任意均可直接調研l(wèi)ogging的日志方法即可。如下所示:

logging.info('this is a loggging info message')
logging.debug('this is a loggging debug message')
logging.warning('this is loggging a warning message')
logging.error('this is an loggging error message')
logging.critical('this is a loggging critical message')


即可在控制臺和日志文件輸出日志信息

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多