通过lib.utilsget_logger()函数实现多级别日志记录
lib.utils模块是一个常用的工具模块,其中包含一个get_logger()函数,用于创建多级别的日志记录器。日志记录器可以记录并打印不同级别的日志消息,如DEBUG、INFO、WARNING、ERROR等。
下面是get_logger()函数的代码实现:
import logging
def get_logger():
# 创建日志记录器
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# 创建控制台处理器,打印INFO及以上级别的日志消息
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
# 创建文件处理器,将所有级别的日志消息写入文件
file_handler = logging.FileHandler('log.txt')
file_handler.setLevel(logging.DEBUG)
# 创建日志消息格式化器
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# 设置处理器的日志消息格式化方式
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
# 添加处理器到日志记录器中
logger.addHandler(console_handler)
logger.addHandler(file_handler)
return logger
在上面的代码中,首先通过logging.getLogger()函数获取一个默认的日志记录器,然后设置日志记录器的最低级别为DEBUG。
接着创建了两个处理器,一个是控制台处理器console_handler,用于打印INFO及以上级别的日志消息,另一个是文件处理器file_handler,用于将所有级别的日志消息写入文件。可以通过修改console_handler.setLevel(logging.INFO)和file_handler.setLevel(logging.DEBUG)来设置不同的级别。
然后创建了一个日志消息格式化器formatter,用于设置日志消息的格式。
最后将处理器添加到日志记录器中,并返回日志记录器。
下面是使用get_logger()函数的例子:
# 导入lib.utils模块
import lib.utils as utils
# 获取日志记录器
logger = utils.get_logger()
# 记录不同级别的日志消息
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')
在上面的例子中,首先通过import lib.utils as utils导入lib.utils模块,并通过utils.get_logger()函数获取日志记录器logger。
然后使用logger对象记录不同级别的日志消息,可以使用logger.debug()、logger.info()、logger.warning()、logger.error()和logger.critical()等方法进行记录。这些方法的使用方式类似,只需要传入对应级别的日志消息作为参数即可。
运行上述例子代码后,会在控制台打印INFO及以上级别的日志消息,并将所有级别的日志消息写入到log.txt文件中。
通过lib.utils模块中的get_logger()函数,我们可以方便地创建多级别的日志记录器,并进行日志记录。这样可以帮助我们更好地跟踪和调试程序,并提高代码的可靠性和可维护性。
