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文件,记录相应级别的日志信息。
你可以根据需要调整日志记录器的配置和格式,以满足你的实际需求。这样,你就可以方便地实现根据时间戳创建新的日志文件,并封装不同级别的日志记录功能。

相关推荐

  1. pythonlogger封装模板

    2024-03-29 01:22:01       42 阅读
  2. ELK

    2024-03-29 01:22:01       61 阅读
  3. Mysql事务

    2024-03-29 01:22:01       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 01:22:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 01:22:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 01:22:01       87 阅读
  4. Python语言-面向对象

    2024-03-29 01:22:01       96 阅读

热门阅读

  1. 团队建设与管理案例分析题

    2024-03-29 01:22:01       40 阅读
  2. vue 事件处理

    2024-03-29 01:22:01       42 阅读
  3. Zigbee技术在智能农业领域的应用研究

    2024-03-29 01:22:01       49 阅读
  4. 每日OJ题_栈②_力扣844. 比较含退格的字符串

    2024-03-29 01:22:01       50 阅读
  5. 在nodejs中打开浏览器网页

    2024-03-29 01:22:01       40 阅读
  6. mysql select

    2024-03-29 01:22:01       36 阅读
  7. OCR识别文字示例

    2024-03-29 01:22:01       43 阅读
  8. 数组常见算法代码总结

    2024-03-29 01:22:01       43 阅读
  9. 02 React 组件使用

    2024-03-29 01:22:01       45 阅读
  10. vue的插槽

    2024-03-29 01:22:01       48 阅读