1. 日志级别应用场景

级别 何时使用
DEBUG 细节信息,仅当诊断问题时适用。
INFO 确认程序按预期运行。
WARNING 表明有已经或即将发生的意外(例如:磁盘空间不足)。程序仍按预期进行。
ERROR 由于严重的问题,程序的某些功能已经不能正常执行
CRITICAL 严重的错误,表明程序已不能继续执行
  • 注意

    • 各级别适用性如下(以严重性递增)
    • 默认的级别是WARNING,意味着只会追踪该级别及以上的事件,除非更改日志配置

      2. 配置文件生成日志

      日志库采用模块化方法,并提供几类组件:记录器、处理器、过滤器和格式器。
  • 记录器暴露了应用程序代码直接使用的接口。

  • 处理器将日志记录(由记录器创建)发送到适当的目标。
  • 过滤器提供了更精细的附加功能,用于确定要输出的日志记录。
  • 格式器指定最终输出中日志记录的样式。

    3. 配置详情

    ```

    通过调用 Logger 类(以下称为 loggers , 记录器)的实例来执行日志记录。 每个实例都有一个名称

    在命名记录器时使用的一个好习惯是在每个使用日志记录的模块中使用模块级记录器

    这意味着记录器名称跟踪包或模块的层次结构,并且直观地从记录器名称显示记录事件的位置。

    记录器层次结构的根称为根记录器,根记录器的名称在输出中打印为 ‘root’ 。

    logger = logging.getLogger(name)

为日志消息设置目标,默认情况下,没有为任何日志消息设置目标。

你可以使用 basicConfig() 指定目标(例如控制台或文件)

可以通过使用 format 参数将格式字符串传递给 basicConfig() 来更改此设置

[loggers] keys=root,simpleExample,writeStdExample

[handlers] keys=consoleHandler,writeHandler

[formatters] keys=simpleFormatter

[logger_root] level=DEBUG handlers=consoleHandler

console

[logger_simpleExample] level=DEBUG handlers=consoleHandler qualname=simpleExample propagate=0

write,console

[logger_writeStdExample] level=DEBUG handlers=writeHandler,consoleHandler qualname=writeStdExample propagate=0

[handler_consoleHandler] class=StreamHandler level=DEBUG formatter=simpleFormatter args=(sys.stdout,)

[handler_writeHandler] class=logging.handlers.TimedRotatingFileHandler level=DEBUG formatter=simpleFormatter args=(‘msg-statistics.log’, ‘M’,1,100000)

[formatter_simpleFormatter] format=%(asctime)s - %(name)s - %(levelname)s - %(message)s datefmt=

#################################### 文件调用

import logging.config logging.config.fileConfig(‘logging.conf’) logger = logging.getLogger(‘simpleExample’)

```