如何在整个项目的控制台中设置可见的另一级日志?

时间:2016-03-25 18:16:17

标签: java logging intellij-idea

我有一个小的JavaFX应用程序,不想使用 java.util.logging 。我已将所需信息记录到Level.INFO(当前可见)和Level.FINE(当前不可见)级别。当我尝试通过Intellij Idea编译项目时,我在控制台中看到了Level.INFO日志。

代码示例。

public class Main extends Application {
   private static final Logger logger = Logger.getLogger(Main.class.getName());
   @Override
   public void start(Stage primaryStage) throws Exception {
        logger.log(Level.INFO, "App started. Message's visible");
        logger.log(Level.FINE, "Message's not visible");
   }
}

如何更改控制台默认的可见级别,而无需为 Handler 代码的每个记录器行编写代码?也许在root中有一些配置文件?

日志以grwww answer here的风格编写,但没有任何关于改变可见级别的内容。

1 个答案:

答案 0 :(得分:0)

阅读Oracle的Java Logging Overview

在代码中配置记录器内联

import javafx.application.Application;
import javafx.stage.Stage;

import java.util.logging.*;

public class Main extends Application {
    private static final Logger logger = Logger.getLogger(Main.class.getName());

    @Override
    public void start(Stage primaryStage) throws Exception {
        logger.log(Level.INFO, "App started. Message's visible");
        logger.log(Level.FINE, "Message's not visible");
    }

    public static void main(String[] args) {
        logger.setLevel(Level.FINE);

        Handler consoleHandler = new ConsoleHandler();
        consoleHandler.setLevel(Level.FINE);
        logger.addHandler(consoleHandler);

        launch(args);
    }
}

请注意,该级别是在 记录器和处理程序上配置的。

有关如何执行此操作的信息来自:

使用文件或类配置记录器

请注意,我在上面提供的示例是针对基于内联代码的方法。还可以使用日志记录配置类或外部文件(或类路径资源)定义日志记录配置。要执行此操作,请参阅先前链接的LogManager文档和Java日志概述。

  

LogManager定义了两个可选的系统属性,允许控制初始配置:

     
      
  • " java.util.logging.config.class"
  •   
  • " java.util.logging.config.file"
  •   
     

这两个属性可以在" java"的命令行中指定。命令。

     

如果" java.util.logging.config.class"属性设置,然后   属性值被视为类名。给定的课程将是   加载,将实例化一个对象,以及该对象的构造函数   负责读取初始配置。 (那个对象   可以使用其他系统属性来控制其配置。)   备用配置类可以使用readConfiguration(InputStream)   在LogManager中定义属性。

     

如果" java.util.logging.config.class"财产没有设定,那么   " java.util.logging.config.file"系统属性可用于指定   属性文件(java.util.Properties格式)。最初的   将从此文件中读取日志记录配置。

     

如果没有定义这些属性,则LogManager使用它   默认配置。通常会加载默认配置   来自属性文件" lib / logging.properties"在Java中   安装目录。