logging封装使用
时间: 2023-07-15 10:13:16 浏览: 52
logging是Python内置模块,用于记录日志信息。下面是一个简单的logging封装使用示例:
```python
import logging
class Logger:
def __init__(self, name='my_logger', level='INFO', log_file=None):
self.logger = logging.getLogger(name)
self.logger.setLevel(logging.getLevelName(level))
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
if log_file:
file_handler = logging.FileHandler(log_file)
file_handler.setFormatter(formatter)
self.logger.addHandler(file_handler)
else:
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
self.logger.addHandler(stream_handler)
def debug(self, msg):
self.logger.debug(msg)
def info(self, msg):
self.logger.info(msg)
def warning(self, msg):
self.logger.warning(msg)
def error(self, msg):
self.logger.error(msg)
def critical(self, msg):
self.logger.critical(msg)
```
上面的代码定义了一个Logger类,可以用来记录不同级别的日志信息。使用示例如下:
```python
logger = Logger(name='my_logger', level='DEBUG', log_file='my.log')
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
```
在以上示例中,我们创建了一个名为my_logger的Logger实例,设置了日志级别为DEBUG,并将日志记录到文件my.log中。如果没有指定log_file,则日志将打印到控制台。我们还定义了5个方法,分别用于打印不同级别的日志信息。