如何从命令行设置日志记录级别

新手上路,请多包涵

我使用 argparse 从命令行获取日志记录级别,然后将其作为 logging.basicConfig 的输入传递。但是,我尝试实现它的方式不起作用。有什么建议吗?

期望行为,来自命令行:

 python main.py -log=DEBUG

欲望输出

DEBUG:__main__: Debug is working

代码

import logging
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-log", "--log", nargs='+', help="Provide logging level. Example --log debug'")

log_level = parser.parse_args().log
log_level = 'logging.'+log_level[0]
print(log_level)
logging.basicConfig(level=log_level)
logger = logging.getLogger(__name__)
logger.debug(' Debug is working')

原文由 Tesla001 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 491
1 个回答

basicConfig 函数可以为 level 接受一个字符串参数,它会为你检查它的有效性,所以代码可以比 BarryPye 的答案简单得多。

 import argparse
import logging

parser = argparse.ArgumentParser()
parser.add_argument( '-log',
                     '--loglevel',
                     default='warning',
                     help='Provide logging level. Example --loglevel debug, default=warning' )

args = parser.parse_args()

logging.basicConfig( level=args.loglevel.upper() )
logging.info( 'Logging now setup.' )

原文由 Glazed 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题