使用python封装一个日志类代码
时间: 2024-01-14 20:02:50 浏览: 32
可以使用Python内置的logging模块来封装一个日志类。下面是一个简单的示例代码:
```python
import logging
class MyLogger:
def __init__(self, name, level=logging.INFO):
self.logger = logging.getLogger(name)
self.logger.setLevel(level)
# 定义日志输出格式
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
# 创建控制台日志处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(level)
console_handler.setFormatter(formatter)
self.logger.addHandler(console_handler)
# 创建文件日志处理器
file_handler = logging.FileHandler(filename='mylog.log', mode='a', encoding='utf-8')
file_handler.setLevel(level)
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)
```
这个日志类包含了一个构造方法和5个方法,分别对应了不同级别的日志输出。在构造方法中,我们使用logging.getLogger()方法创建了一个Logger对象,并设置了日志级别。然后定义了两个日志处理器,一个是输出到控制台,一个是输出到文件。在每个方法中,我们通过调用Logger对象的不同方法来输出不同级别的日志。这些日志信息将会被输出到控制台和指定的日志文件中。
使用该日志类的代码示例如下:
```python
logger = MyLogger('mylogger')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
```
上述代码将会在控制台和mylog.log文件中输出不同级别的日志信息。通过这种方式,我们可以方便地封装一个可复用的日志类,提高代码的可维护性和可读性。