Python logging模块详解与应用

1 下载量 172 浏览量 更新于2024-08-29 收藏 66KB PDF 举报
"Python的logging模块是一个强大的日志记录工具,用于在程序运行过程中记录各种级别的信息,如CRITICAL、ERROR、WARNING、INFO和DEBUG。本文将对logging模块的使用进行总结,包括日志级别设置和`logging.basicConfig()`函数的参数详解。 在Python的logging模块中,定义了五个日志级别,按照严重性从高到低排序为: 1. CRITICAL (50) - 最严重的错误,系统无法继续运行的情况。 2. ERROR (40) - 发生了错误,但程序仍能继续运行。 3. WARNING (30) - 警告信息,表明程序运行中存在潜在问题。 4. INFO (20) - 一般信息,用于记录程序运行状态。 5. DEBUG (10) - 调试信息,详细程度较高,用于开发阶段追踪问题。 `logging.basicConfig()`函数是初始化日志记录的基本配置,它接受多个参数来定制日志行为: - `filename`:用于指定日志文件的名称,创建一个FileHandler,日志信息会被写入该文件。 - `filemode`:指定打开文件的方式,通常为"w"(覆盖)或"a"(追加)。 - `format`:设定日志记录的格式,比如包含日志级别、时间戳、模块信息等。 - `datefmt`:定义日期时间的格式,参照strftime函数的格式规范。 - `level`:设置根logger的日志级别,低于此级别的日志不会被处理。 - `stream`:创建StreamHandler,可指定输出到sys.stderr、sys.stdout或文件,默认为sys.stderr。如果同时设置了`filename`和`stream`,则`stream`参数将被忽略。 `format`参数中可以使用一些预定义的格式化信息,例如: - `%(name)s`:记录日志的logger名称。 - `%(levelno)s`:日志级别的数字表示。 - `%(levelname)s`:日志级别的文本表示。 - `%(pathname)s`:生成日志的模块的完整路径。 - `%(filename)s`:生成日志的模块的文件名。 - `%(module)s`:生成日志的模块名。 - `%(funcName)s`:生成日志的函数名。 - `%(lineno)d`:生成日志的代码行号。 - `%(created)f`:当前时间,以UNIX时间戳的浮点数表示。 - `%(relativeCreated)d`:自logger创建以来的毫秒数。 - `%(asctime)s`:当前时间的字符串表示,包括毫秒。 - `%(thread)d`:线程ID。 - `%(threadName)s`:线程名称。 - `%(process)d`:进程ID。 - `%(message)s`:用户自定义的日志消息。 以下是一个简单的示例,展示了如何使用logging模块将日志信息输出到标准输出: ```python import logging logging.basicConfig(level=logging.DEBUG) logging.debug('debug message') logging.info('info message') logging.warning('warning message') ``` 在这个例子中,所有级别的日志信息都将被输出,因为`level`参数设置为了`DEBUG`。通过调整`level`参数,可以根据需要过滤不同级别的日志信息。 Python的logging模块提供了丰富的功能,能够帮助开发者记录和调试应用程序,确保在出现问题时有充分的信息可供追踪和分析。通过灵活配置,可以适应各种日志记录需求,无论是在本地开发还是在生产环境中。