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

用Python编写一个简单的日志记录程序

发布时间:2023-12-04 14:29:12

以下是一个使用Python编写的简单日志记录程序的例子:

import logging

# 设置日志记录的级别为DEBUG
logging.basicConfig(level=logging.DEBUG)

# 创建一个FileHandler,用于将日志记录到文件中
file_handler = logging.FileHandler('log.txt')

# 创建一个StreamHandler,用于将日志记录到控制台
stream_handler = logging.StreamHandler()

# 创建一个Formatter,用于设置日志记录的格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 设置FileHandler和StreamHandler的格式分别为Formatter
file_handler.setFormatter(formatter)
stream_handler.setFormatter(formatter)

# 创建一个Logger实例,用于记录日志
logger = logging.getLogger('mylogger')

# 将FileHandler和StreamHandler添加到Logger中
logger.addHandler(file_handler)
logger.addHandler(stream_handler)


def foo():
    # 输出不同级别的日志记录
    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')


if __name__ == "__main__":
    foo()

上述代码中,我们使用Python的logging模块创建了一个日志记录程序。主要步骤如下:

1. 导入logging模块,并设置日志记录的级别为DEBUG

2. 创建一个FileHandler,用于将日志记录到文件中。

3. 创建一个StreamHandler,用于将日志记录到控制台。

4. 创建一个Formatter,用于设置日志记录的格式。

5. 设置FileHandlerStreamHandler的格式分别为Formatter

6. 创建一个Logger实例,用于记录日志。

7. 将FileHandlerStreamHandler添加到Logger中。

8. 在foo函数中,我们通过logger实例记录了不同级别的日志信息。

9. 在if __name__ == "__main__":语句块中,调用foo函数来生成日志记录。

通过运行上述代码,我们可以在控制台和名为log.txt的文件中看到日志记录。该日志记录包括了时间戳、日志记录者名称、日志级别和日志消息。

例如,运行上述代码后,控制台可能会显示如下的日志记录:

2021-10-01 15:30:00,123 - mylogger - DEBUG - This is a debug message
2021-10-01 15:30:01,234 - mylogger - INFO - This is an info message
2021-10-01 15:30:02,345 - mylogger - WARNING - This is a warning message
2021-10-01 15:30:03,456 - mylogger - ERROR - This is an error message
2021-10-01 15:30:04,567 - mylogger - CRITICAL - This is a critical message

文件log.txt中可能会包含相同的日志记录。

以上是一个简单的日志记录程序的示例,它可以帮助你记录不同级别的日志信息,方便调试和追踪问题。通过日志记录,你可以更好地了解程序的执行情况,并排查潜在的错误和异常。