python的logging封装后的使用
时间: 2024-02-11 17:07:36 浏览: 177
Python的logging模块提供了灵活的日志记录功能,可以将日志输出到文件、控制台、网络等各种目标。下面是一个简单的logging封装示例,您可以根据自己的需求进行修改和扩展。
```python
import logging
class Logger:
def __init__(self, name=__name__, level=logging.DEBUG):
self.logger = logging.getLogger(name)
self.logger.setLevel(level)
formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(name)s: %(message)s')
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
self.logger.addHandler(console_handler)
file_handler = logging.FileHandler('app.log')
file_handler.setFormatter(formatter)
self.logger.addHandler(file_handler)
def debug(self, message):
self.logger.debug(message)
def info(self, message):
self.logger.info(message)
def warning(self, message):
self.logger.warning(message)
def error(self, message):
self.logger.error(message)
def critical(self, message):
self.logger.critical(message)
```
在上述代码中,我们定义了一个Logger类,它包含了一个logger对象和几个日志级别的方法。在初始化时,我们设置了日志级别、日志格式和两个Handler(控制台和文件)。日志级别可以根据需要进行调整,常见的级别包括DEBUG、INFO、WARNING、ERROR和CRITICAL。日志格式可以根据自己的需要进行修改,上面的格式包含了时间、级别、日志名称和消息内容。
使用该Logger类时,可以先创建一个实例对象,然后调用对应的方法记录日志,例如:
```python
logger = Logger(__name__)
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
```
该示例中,我们创建了一个名为logger的Logger对象,并记录了五个不同级别的日志。控制台和文件中将分别输出这些日志信息。
当然,上述示例只是一个简单的封装,您可以根据自己的需求进行扩展,例如添加网络输出、邮件通知等功能。同时,您还可以使用Python的logging模块提供的其他功能,例如过滤器、处理器、格式化器等,以满足更复杂的日志需求。
阅读全文