2015-01-23 3 views
1

Я пытаюсь настроить мое многоступенчатое приложение для вывода сообщений консоли (журнала) в файл.приложение javafx написать журнал в файл

Так вот мой основной класс:

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); 
     } 
    } 

Как я мог записать вывод консоли в файле также? Должен ли я настроить второй регистратор, просто использовать существующий и добавить его содержимое в файл?

+0

Какой логический API вы используете? – ItachiUchiha

+1

Как выглядит ваша конфигурация регистрации? – Puce

+0

с помощью java java.util.logging – thanili

ответ

1

Как я понял из вашего вопроса и комментариев, вы не установили конфигурационный файл.

Предоставьте файл logging.properties вместе с вашим приложением (не внутри банки).

У меня есть только образец, используя 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

+0

И где я устанавливаю фактическое имя файла журнала? Только один раз, а не для каждого класса в моем проекте? Например. мне нужно реализовать класс Log Manager и создать его в каждом классе моего проекта? – thanili

+0

@thanili вы передаете местоположение файла конфигурации в качестве аргумента командной строки в команду «java», как описано в моем ответе, - так только один раз. Для этого вам не нужно реализовывать какой-либо класс. – Puce

+0

Я могу видеть, что в командной строке в качестве аргумента я передаю файл logging.properties, в моем комментарии, прежде чем я хочу сказать, где я могу установить файл log.txt ... фактический файл журнала – thanili

Смежные вопросы