我在项目中设置了基本配置
例如,来自__init__.py
:
import logging
logging.basicConfig(level=logging.INFO)
我想在读取用户参数后在运行时更改全局级别。是否可以在之后不移动前几行?
完整的示例如下所示:
logger = logging.getLogger(__name__)
def run():
parser = OptionParser()
parser.add_option("--debug", dest="debug",
action="store_true",
help="flag to indicate if debug should be enabled",
default=False)
(options, args) = parser.parse_args()
if options.debug:
# change the logging configuration
pass
#logging.basicConfig(level=logging.DEBUG)
# call the application code
答案 0 :(得分:1)
logger = logging.getLogger(__name__)
...
if options.debug:
logger.setLevel(logging.DEBUG)
编辑:
如果要设置当前可用的所有记录器的级别,可以执行以下操作:
loggers = [logging.getLogger(name) for name in logging.root.manager.loggerDict]
for logger in loggers:
logger.setLevel(logging.DEBUG)
或者您可以模仿logging.basicConfig
的行为:
logging.root.setLevel(logging.DEBUG)