我正在寻找一种在运行应用程序时关闭特定级别的日志消息的方法。例如,如果向我的应用程序传递debug
参数,则应显示带有Level.INFO
的日志消息,否则它们不应显示。但是,仍应显示SEVERE
级别的日志消息。有没有办法在不使用IF/ELSE
语句的情况下执行此操作?感谢
我正在使用Java Logging Framework,如下所示:
logger.log(Level.INFO, "The piece is in the pending queue");
答案 0 :(得分:3)
Click here找出配置日志。
答案 1 :(得分:1)
您可以按java.util.logging.ConsoleHandler.level=<level>
设置日志级别,其中级别代表:
您需要将级别视为堆栈:您可以定义自己的位置,并根据您选择的严重性来编写框架日志。例如,如果您将级别设置为INFO
,则会获得严重性SEVERE
,WARNING
和INFO
答案 2 :(得分:0)
由于有一个名为logger的Logger
对象,因此可以使用以下方法设置特定对象的级别:
logger.setLevel(<level>)
但是如果项目中有多个记录器对象,并且您想为所有这些对象设置级别,则可以使用以下内容:
Handler[] handlers
= Logger.getLogger("").getHandlers();
for (int index = 0; index < handlers.length; index++) {
handlers[index].setLevel(<level>);
}
这些是Hichamov所说的水平