簡體   English   中英

我可以一次設置所有加載模塊的日志記錄級別嗎?

[英]Can i set logging level of all loaded modules at once?

  • 主模塊
  • 模塊A
  • 模塊B

主模塊使用模塊的功能。 模塊的功能包括 logger.info 或 logger.warning.. 等等,以顯示我對代碼的錯誤。

目的
- 在 main、A 和 B 中記錄所有內容。
- 目前在主 jupyter 筆記本中設置 A 和 B 日志記錄級別的教員。 (例如,當我需要有關 A 的 function 的更多信息時,然后將日志記錄級別從INFO增加到DEBUG

順便說一下,主腳本有:

import logging, sys

# create logger
logger = logging.getLogger('logger')
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
fh = logging.FileHandler('process.log')
logger.setLevel(logging.DEBUG)

ch = logging.StreamHandler(sys.stdout)
ch.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s\n')

# add formatter to ch
fh.setFormatter(formatter)

# add ch to logger
logger.addHandler(fh)
logger.addHandler(ch)

我想使用 Logger object 並配置這個 object,而不是日志記錄的 baseconfig。 但如果我不能,其他方式也可以。

如果你這樣做:

logger = logging.getLogger('logger')

進入模塊 A 和模塊 B,然后他們應該可以訪問與主文件相同的記錄器。 從那里,您可以隨時設置任何級別。 例如

# ../module_a.py

import logging

logger = logging.getLogger('logger')

logger.setLevel(whatever) # Now all instances of "logger" will be set to that level.

基本上,記錄器是按名稱全局注冊的,並且可以直接從任何其他模塊通過日志記錄模塊訪問。

暫無
暫無

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

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