python的logger日志的封装模板

1.可以使用Python的logging模块来实现日志记录,并根据时间戳创建每次执行时的新.log文件。同时,你可以封装不同级别的日志记录功能,如warning、error、info等。

以下是一个示例代码,演示了如何实现根据时间戳创建新的.log文件,并封装不同级别的日志记录功能:

import os
import logging
import datetime

class CustomLogger:
    def __init__(self):
        self.log_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'log')
        if not os.path.exists(self.log_dir):
            os.makedirs(self.log_dir)

        self.logger = logging.getLogger(__name__)
        self.logger.setLevel(logging.DEBUG)

        # 创建不同级别的handler和formatter
        self.create_handler(logging.INFO, 'info')
        self.create_handler(logging.WARNING, 'warning')
        self.create_handler(logging.ERROR, 'error')

    def create_handler(self, level, filename):
        log_file = os.path.join(self.log_dir, f'{filename}.log')
        handler = logging.FileHandler(log_file)
        handler.setLevel(level)
        formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
        handler.setFormatter(formatter)
        self.logger.addHandler(handler)

    def info(self, message):
        self.logger.handlers[0].emit(logging.LogRecord('name', logging.INFO, '', 0, message, None, None))

    def warning(self, message):
        self.logger.handlers[1].emit(logging.LogRecord('name', logging.WARNING, '', 0, message, None, None))

    def error(self, message):
        self.logger.handlers[2].emit(logging.LogRecord('name', logging.ERROR, '', 0, message, None, None))

# 使用示例
logger = CustomLogger()
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')

在这个示例中,CustomLogger类封装了日志记录功能,并提供了创建新.log文件和记录不同级别日志的方法。每次执行时,会根据时间戳创建一个新的.log文件,记录相应级别的日志信息。
你可以根据需要调整日志记录器的配置和格式,以满足你的实际需求。这样,你就可以方便地实现根据时间戳创建新的日志文件,并封装不同级别的日志记录功能。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python日志模块是标准库中的一个模块,可以用来记录应用程序的日志信息。封装Python日志可以方便地统一管理应用程序的日志信息,使得应用程序的开发和维护更加容易。 以下是一个简单的Python日志封装的例子: ```python import logging class Logger(object): def __init__(self, logger_name): self.logger = logging.getLogger(logger_name) self.logger.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO) console_handler.setFormatter(formatter) self.logger.addHandler(console_handler) def info(self, msg): self.logger.info(msg) def error(self, msg): self.logger.error(msg) def warning(self, msg): self.logger.warning(msg) def debug(self, msg): self.logger.debug(msg) ``` 上面的代码定义了一个Logger类,该类封装Python的logging模块。在类的构造函数中,我们设置了日志的级别为INFO,并且添加了一个控制台输出的处理器。在类的方法中,我们分别封装了info、error、warning和debug级别的日志输出。在应用程序中,我们可以通过该类来统一管理应用程序的日志信息,例如: ```python logger = Logger('my_logger') logger.info('This is an info message.') logger.error('This is an error message.') logger.warning('This is a warning message.') logger.debug('This is a debug message.') ``` 通过上述代码,我们可以在控制台中看到相应级别的日志信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值