如何精细化设置Hydra应用的模块日志级别?
如何屏蔽Hydra中特定模块的冗余Debug日志
Hydra原生并不支持你设想的hydra.verbose=~[NAME1,NAME2]这种排除式语法,但可以通过两种方式实现目标:
方法1:精准控制单个模块日志级别
放弃全局开启hydra.verbose=true的方式,直接为需要调试的模块单独设置Debug级别,同时把冗余模块的日志级别调高(比如INFO或WARN),避免无价值的Debug输出。
配置文件示例(YAML):
hydra: logging: version: 1 disable_existing_loggers: false loggers: # 给需要调试的模块开启Debug日志 module_you_care_about: level: DEBUG handlers: [console] propagate: false # 屏蔽NAME1、NAME2的Debug日志,设为INFO级别 NAME1: level: INFO handlers: [console] propagate: false NAME2: level: INFO handlers: [console] propagate: false
命令行临时配置:
如果不想改配置文件,可以直接在启动命令里指定:
python your_app.py hydra.logging.loggers.NAME1.level=INFO hydra.logging.loggers.NAME2.level=INFO
方法2:全局Debug+模块级别覆盖
如果你已经全局开启了hydra.verbose=true,可以在此基础上单独覆盖冗余模块的日志级别,强制它们输出更高等级的日志:
命令行方式:
python your_app.py hydra.verbose=true hydra.logging.loggers.NAME1.level=INFO hydra.logging.loggers.NAME2.level=INFO
配置文件方式:
hydra: verbose: true logging: loggers: NAME1: level: INFO NAME2: level: INFO
这两种方式都能精准过滤掉指定模块的冗余Debug日志,同时保留你关心的模块的调试信息。
内容的提问来源于stack exchange,提问作者itamar kanter
相关产品推荐
相关产品推荐

