Artur
G.
Manager / Management
3.0 enthusiast
Temat: Konfiguracja loggera w JAVA - pomocy!
Witam,Mam taki mały problem: mam napisaną aplikację w JAVA spakowaną do wykonywalnego jar'a (nazwijmy ją aplikacja.jar), która to aplikacje loguje sobie swoje logi do pliku ./logs/aplikacja.log
Logowanie realizowane jest za pomocą java.util.logging.
Generalnie zaszła potrzeba konfigurowania sobie logowania przez użytkownika (np. rotacji logów), trzeba więc zmienić aktualną konfiguracje loggera na konfigurację podaną przez użytkownika.
Znalazłem na sieci informację, że trzeba w tym celu stworzyć sobie swój plik z properties'ami (nazwijmy go log.properties), a następnie wywołać JAVĘ z opcją: -Djava.util.logging.config.file=/path/to/app.properties
Zrobiłem tak, ale coś mi nie działa. :-(
Aplikację wywołuję w następujący sposób:
java -Djava.util.logging.config.file=log.properties -jar aplikacja.jar
log.properties znajduje się w katalogu bieżącym i wygląda następująco:
# File Logging
java.util.logging.FileHandler.pattern=/logs/myApp.log
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.FileHandler.level=ALL
java.util.logging.FileHandler.limit=50
java.util.logging.FileHandler.count=100
# Console Logging
java.util.logging.ConsoleHandler.level = OFF
Niestety aplikacja w ogóle nie reaguje na nowe ustawienia handlera. Nazwa pliku z logowaniem się nie zmienia. Nie ma też rotacji logów.
Co ciekawe: plik log.properties na pewno jest zaczytywany prawidłowo, gdyż jeśli na przykład wpiszę tam głupoty, to java zauważa że coś jest nie tak. Kiedy na przykład zmieniłem linijkę:
java.util.logging.FileHandler.level=ALL
na linijkę:
java.util.logging.FileHandler.level=AL
to od razu wyskoczył na konsoli komunikat:
Bad level value for property: java.util.logging.FileHandler.level
Czyli JAVA czyta sobie parametry z tego pliku ale z jakichś tam względów ich nie stosuje.
Czy ktoś może wie o co może chodzić i gdzie popełniam błąd?
Z góry dziękuję za pomoc!
Pozdrawiam,
Artur