Мое приложение создает файл журнала Java в
$HOME/javaN.log
, где N
- целое число.Иногда запускается несколько экземпляров моего приложения, и каждый создает файл журнала с именем java1.log
, java2.log
и т. Д. Мне нужно знать во время выполнения, какой файл журнала используется приложением.
Есть ли способ определить местоположениелог файла программно?
Я определил свой регистратор в файле logging.properties
как com.xyz.foo
.Вот как выглядит logging.properties:
handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
.level = WARNING
com.xyz.foo.level = FINEST
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.level=FINEST
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=%1$tY:%1$tm:%1$td %1$tH:%1$tM:%1$tS[%4$s] %2$s%n%5$s%n%6$s%n
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
Эта строка
java.util.logging.FileHandler.pattern = %h/java%u.log
создаст файл журнала в домашней папке пользователя, как описано выше.
Создание и присвоение именфайла журнала обрабатывается средой Java автоматически в фоновом режиме.Он также автоматически разрешает возможные конфликты имен, если другой процесс уже создал файл журнала, например, если существует java0.log
, то Logger
создаст java1.log
как файл журнала.
Я знаю, как явно установить файл журнала,Однако я предпочел бы сохранить механизм ведения журнала таким, какой он есть в настоящее время, и получить имя, выбранное Logger
для файла журнала.