欢迎访问宙启技术站
智能推送

Python中的setup_logger()函数简介及示例代码

发布时间:2024-01-04 06:38:33

在Python中,我们可以使用logging模块来进行日志记录。logging模块提供了一种灵活的方式来生成日志记录,并且可以将日志记录到不同的输出目标,如控制台、文件、网络等。在实际应用中,我们通常需要在多个模块中使用日志记录,为了避免重复的代码,我们可以使用setup_logger()函数来创建一个全局的Logger对象,以便在整个应用中共享和使用。

setup_logger()函数是一个非常简单的辅助函数,用于创建一个全局的Logger对象。它接受一个参数log_file,用于指定日志记录的输出目标文件。如果未指定log_file,则日志将被输出到控制台。

下面是setup_logger()函数的示例代码:

import logging

def setup_logger(log_file=None):
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)
    
    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    
    if log_file:
        file_handler = logging.FileHandler(log_file)
        file_handler.setLevel(logging.DEBUG)
        file_handler.setFormatter(formatter)
        logger.addHandler(file_handler)
    
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.INFO)
    console_handler.setFormatter(formatter)
    logger.addHandler(console_handler)
    
    return logger

在这个示例代码中,我们首先创建了一个Logger对象,并设置了日志记录的级别为DEBUG。接下来,我们创建了一个Formatter对象,用于指定日志记录的格式。然后,我们根据是否指定了log_file来决定是否创建一个FileHandler对象,如果指定了log_file,则将日志记录写入到指定的文件中,并设置日志记录的级别为DEBUG。同时,我们还创建了一个StreamHandler对象来将日志记录输出到控制台,并将日志记录的级别设置为INFO。最后,我们将FileHandler和StreamHandler对象添加到Logger对象中。

使用setup_logger()函数非常简单,只需在代码的开始部分调用一次setup_logger()函数即可:

logger = setup_logger(log_file='app.log')

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')

在这个示例代码中,我们首先调用setup_logger()函数并指定日志记录的输出目标文件为app.log。然后,我们通过Logger对象的不同方法来记录不同级别的日志。

总结一下,setup_logger()函数提供了一种简单的方法来创建一个全局的Logger对象,并将日志记录到指定的输出目标。通过使用这个函数,我们可以在整个应用中共享和使用这个Logger对象,以方便地进行日志记录。