如何在Revel框架的app.conf中关闭调试日志并输出其他日志到文件?
解决Revel日志配置不生效的问题
嘿,问题出在配置顺序上!Revel的日志过滤器是按你定义的顺序来匹配的——第一个符合条件的规则会被优先应用,你的配置把通用的all级别规则放在了前面,直接覆盖了后面的debug关闭规则。
正确的配置顺序
你需要把更具体的debug级别规则放在all级别规则前面,这样debug日志会先匹配到关闭规则,其他级别的日志再走输出到文件的逻辑:
# 先关闭所有模块的debug日志 log.debug.filter.module.app = off log.debug.filter.module.revel = off log.debug.output = off # 再将非debug级别的日志输出到logfile log.all.filter.module.app = logfile log.all.filter.module.revel = logfile log.all.output = logfile
为什么之前的配置无效?
当你先设置log.all.filter.module.app = logfile时,所有级别的日志(包括debug)都会先匹配到这条规则,被直接导向logfile,后面的log.debug.*规则根本没机会触发。把debug的关闭规则前置后,debug日志会被第一个匹配到并丢弃,剩下的日志才会走到all的输出规则。
简化配置(如果不需要分模块处理)
如果你不需要针对app和revel模块做不同的日志策略,可以直接用全局配置,更简洁:
# 全局关闭debug日志输出 log.debug.output = off # 全局将其他所有级别日志输出到logfile log.all.output = logfile
内容的提问来源于stack exchange,提问作者abhijit gupta
相关产品推荐
相关产品推荐

