簡體   English   中英

帶有父記錄器的記錄器如何使有效等級為0?

[英]How can a logger with a parent logger have an effectiveLevel of 0?

嘗試使用日志記錄繼承,並且對我看到的有效日志級別有些困惑。

我的文件結構如下:

project/
--> __init.py__
--> some_folder/
----> some_file.py

__init.py__我從yaml文件中的dict配置創建根記錄器。 我記錄了它的有效級別,它與預期的一樣(在yaml文件中設置為INFO)。 但是,我在some_file.py中記錄了記錄器的有效級別,結果為0。我意識到非根記錄器的默認級別為NOTSET(0),但我希望有效級別與根記錄器相同,因此INFO而不是0。

知道為什么嗎?

編輯添加的代碼以創建記錄器:

YAML:

  version: 1
  disable_existing_loggers: False
  formatters:
      simple:
      format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"

  handlers:
      console:
      class: logging.StreamHandler
      level: DEBUG
      formatter: simple
      stream: ext://sys.stdout

  root:
      level: INFO
      handlers: [console]
      propagate: no

配置的膨脹:

with open('path_to_yaml', 'r') as f:
    config = yaml.load(f.read())
    logging.config.dictConfig(config)

看來我錯誤地假設它將繼承root的級別。 看來我需要添加一個名為項目的記錄器來完成預期的行為。

  version: 1
  disable_existing_loggers: False
  formatters:
    simple:
      format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"

  handlers:
    console:
      class: logging.StreamHandler
      level: DEBUG
      formatter: simple
      stream: ext://sys.stdout

  loggers:
    project:
      level: INFO
      handlers: [console]
      propagate: no

  root:
      level: INFO
      handlers: [console]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM