6
我在路径中使用嵌入式Jetty 9和slf4j.jar。默认情况下,jetty会记录大量信息。如何以可编程方式禁用码9日志记录?
我想禁用日志记录,或者至少将日志级别更改为INFO。我该如何在程序中做到这一点(即,不用放置一些xml配置文件)?
我在路径中使用嵌入式Jetty 9和slf4j.jar。默认情况下,jetty会记录大量信息。如何以可编程方式禁用码9日志记录?
我想禁用日志记录,或者至少将日志级别更改为INFO。我该如何在程序中做到这一点(即,不用放置一些xml配置文件)?
没有办法使用直接slf4j设置Logger级别,因为slf4j只是一个日志外观/路由API。
您将需要依靠底层的日志实现上设置的命名空间“org.eclipse.jetty” 如日志记录级别:
如果使用SLF4J-simple.jar,和SimpleLogger,那么一旦初始化SimpleLogger(这在JVM的早期阶段),就无法通过编程方式设置该级别,只能通过System属性进行设置。
如果使用slf4j-log4j.jar,请使用Log4j specific techniques。
org.apache.log4j.LogManager.getLogger("org.eclipse.jetty").setLevel(Level.WARN);
java.util.logging.LoggerFactory.getLogger("org.eclipse.jetty").setLevel(Level.WARNING);
final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("org.eclipse.jetty");
if (!(logger instanceof ch.qos.logback.classic.Logger)) {
return;
}
ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) logger;
logbackLogger.setLevel(ch.qos.logback.classic.Level.WARN);
为什么要避免XML /属性文件?他们是操纵日志级别的正确方法。这种编程方法很糟糕,因为您需要重新编译才能更改日志级别!!!!! – SSR
除非您实现某种方式让用户通过GUI或TUI自行更改级别?除非你知道他们将如何使用它,否则你不能说某种程序员应该做的。 – Fallso