javafx应用程序将日志写入文件

时间:2015-01-23 11:42:59

标签: java javafx javafx-2 javafx-8 java.util.logging

我正在尝试将我的多阶段应用程序配置为也将控制台消息(日志)输出到文件。

所以这是我的主要课程:

public class Main extends Application {

    private Stage stage;
    private User loggedUser;
    ...
    public static void main(String[] args) throws IOException {

        Application.launch(Main.class, (java.lang
            .String[])null);
    }

    @Override
    public void start(Stage primaryStage) throws IOException {

        try {
            stage = primaryStage;
            stage.setTitle("FXML Login Sample");
            gotoLogin();
            primaryStage.show();
        } catch (Exception ex) {

            Logger.getLogger(Main.class.getName()).log(Level.INFO, null, ex);
        }
    }
    ...
    private void gotoProfile() {
        try {
            FXMLDocumentController fxmlDocument = (FXMLDocumentController)    replaceSceneContent("FXMLDocument.fxml");
            fxmlDocument.setApp(this);
        } catch (Exception ex) {
            Logger.getLogger(Main.class.getName()).log(Level.INFO, null, ex);

        }
    }

   private void gotoLogin() {
       try {
           LoginController login = (LoginController) replaceSceneContent("login.fxml");
           login.setApp(this);
       } catch (Exception ex) {
           Logger.getLogger(Main.class.getName()).log(Level.INFO, null, ex);
       }
   }

我怎样才能在文件中编写控制台的输出?我应该配置第二个只使用现有记录器并将其内容附加到文件的记录器吗?

1 个答案:

答案 0 :(得分:1)

正如我从您的问题和评论中所理解的那样,您尚未设置配置文件。

在应用程序旁边提供logging.properties文件(不在jar中)。

我只有一个使用ConsoleHandler的示例,但您可以添加其他处理程序,例如FileHandler

handlers= java.util.logging.ConsoleHandler


.level= INFO

java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

java.util.logging.SimpleFormatter.format=%1$tF %1$tT %4$S %2$s - %5$s%6$s%n


my.package.x.level = SEVERE
my.package.y.level = INFO

然后在启动应用程序时传递以下命令行参数:

-Djava.util.logging.config.file=<path to configuration file>/logging.properties

您可以在此处找到更多文档:https://docs.oracle.com/javase/8/docs/technotes/guides/logging