[英]How to set Logging Level from getLogger instance
python 3.6
如何設置日志記錄級別
我想用以下代碼實例化一個日志記錄 class
import logging
from sys import stdout
from logging import DEBUG, INFO, WARNING, ERROR, CRITICAL, StreamHandler
logger = logging.getLogger(__name__)
logging_level = "DEBUG"
valid_logging_levels = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]
if logging_level not in valid_logging_levels:
raise ValueError(f"Logging level must be one of the following: {valid_logging_levels}")
目前我正在使用這種語法來設置日志記錄級別,但它真的很長
sys_out = StreamHandler(stdout)
if not [isinstance(handler, StreamHandler) for handler in logger.handlers]:
logger.addHandler(sys_out)
if logging_level == "DEBUG":
logger.setLevel(DEBUG)
elif logging_level == "INFO":
logger.setLevel(INFO)
elif logging_level == "WARNING":
logger.setLevel(WARNING)
elif logging_level == "ERROR":
logger.setLevel(ERROR)
elif logging_level == "CRITICAL":
logger.setLevel(CRITICAL)
然而,這真的很長。 我想我可以像下面這樣縮短它
log_level = logger.getLevelName(logging_level)
logger.setLevel(log_level)
但是,當我運行它時,我收到錯誤消息'Logger' object has no attribute 'getLevelName'
有沒有更好的方法來設置自定義日志記錄級別?
提前致謝!
log_levels = {
'DEBUG': DEBUG,
'INFO' : INFO,
'WARNING':WARNING,
'ERROR': ERROR,
'CRITICAL':CRITICAL
}
然后你可以這樣做
logger.setLevel(log_levels.get(logging_level))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.