鑑於a.py
:
import logging
import sys
import b
logger = logging.getLogger(__name__)
logger.addHandler(logging.StreamHandler(sys.stdout))
def bar():
logger.error("bar error")
logger.info("bar info")
logger.warning("bar warnign")
bar()
b.foo()
和b.py
:
import logging
import sys
logger = logging.getLogger(__name__)
logger.addHandler(logging.StreamHandler(sys.stdout))
def foo():
logger.error("foo error")
logger.info("foo info")
logger.warning("foo warnign")
我獲得以下的輸出:
bar error
bar warnign
foo error
foo warnign
不知道你的文件的樣子,但默認情況下,你贏了在某些日誌記錄級別看不到消息(在這種情況下,最低的你會看到的是warning
)。
不相關,但不應該在庫代碼中的記錄器中添加處理程序。日誌包的要點是將日誌記錄器調用(在庫代碼中)與日誌記錄配置(在應用程序的頂層)分開。 –