2017-06-14 29 views
1

在我的春节,启动应用程序,我已经启用了执行器,我可以看到我所有的记录器:localhost:8080/loggers这样的:Spring Boot Actuator:我可以一次更改整个软件包的记录器级别吗?

curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "DEBUG"}' http://localhost:8080/loggers/com.parent 

"com.parent":{"configuredLevel":"INFO","effectiveLevel":"INFO"}, 
"com.parent.child":{"configuredLevel":"TRACE","effectiveLevel":"TRACE"} 
[...] 

现在我通过发送请求更改日志记录级别

如果没有设置configuredLevelcom.parent.child,那么更改com.parent的日志记录级别将会改变com.parent.childeffectiveLevel

即使configuredLevel已被设置,是否有方法可以覆盖单个请求中的所有儿童记录器级别?

我试过使用*作为通配符,但它不起作用。我正在尝试做什么,或者我必须分开重置所有孩子的configuredLevel

回答

0

我不认为有可能覆盖所有儿童记录器级别已经明确设置了儿童记录器级别。

春天启动的LoggingEndpoint代表到ch.qos.logback.classic.Logger.handleParentLevelChange()和方法对if(this.level == null) {条件块,所以当递归调用(它走过的所有记录器)到达“com.parent.child”它不会做任何事情,因为“com.parent。孩子“已经有了分配的等级。

当然,您可以在特定的记录器上设置configuredLevel,因为它调用ch.qos.logback.classic.Logger.setLevel(),因此不受handleParentLevelChange()中的条件块的约束。

相关问题