使用lib.utilsget_logger()函数进行日志分级管理
发布时间:2024-01-02 04:40:44
在Python开发中,使用日志是一种常见的方式来记录应用程序的状态、错误和调试信息。lib.utils模块中的get_logger()函数是一个方便的工具函数,用于创建和配置logger对象,可以简化日志的分级管理。
get_logger()函数接受一个参数name,表示logger的名称。通过指定不同的名称,可以创建不同的logger对象,从而对不同的模块或者组件进行单独的日志管理。
下面是get_logger()函数的代码实现:
import logging
def get_logger(name):
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
# 创建一个输出到控制台的Handler
console_handler = logging.StreamHandler()
console_formatter = logging.Formatter('%(asctime)s %(levelname)s: %(message)s')
console_handler.setFormatter(console_formatter)
logger.addHandler(console_handler)
# 创建一个输出到文件的Handler
file_handler = logging.FileHandler('log.log')
file_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(file_formatter)
logger.addHandler(file_handler)
return logger
上述代码中,logger.setLevel(logging.DEBUG)表示将logger的日志级别设置为DEBUG,这样会记录所有的日志消息,包括DEBUG、INFO、WARNING、ERROR和CRITICAL。
get_logger()函数还创建了两个Handler对象,一个用于将日志输出到控制台,另一个用于将日志输出到文件。其中,console_formatter和file_formatter分别定义了控制台和文件日志的输出格式。
使用该函数可以轻松地创建logger对象并进行日志记录。下面是一个例子:
from lib.utils import get_logger
# 创建logger对象
logger = get_logger(__name__)
def add(a, b):
try:
sum = a + b
logger.debug('Addition: {} + {} = {}'.format(a, b, sum))
return sum
except Exception as e:
logger.error('Error occurred: {}'.format(str(e)))
if __name__ == '__main__':
logger.info('Starting application...')
result = add(2, 3)
logger.info('Result: {}'.format(result))
logger.info('Application finished.')
在上述例子中,首先使用get_logger()函数创建了一个logger对象,名称为当前模块的名称。然后,在add()函数中,使用logger对象记录了一条DEBUG级别的日志,该消息将包含两个参数a和b的值和它们的和。如果在执行过程中出现异常,将记录一条ERROR级别的日志,其中包含异常的详细信息。
在最后的if __name__ == '__main__'条件下,logger对象还记录了两条INFO级别的日志,用于标记应用程序的开始和结束。
