Относительные пути используются в файле log4j.properties.Где я могу программно найти, где хранятся файлы журнала log4j?
Как я могу найти абсолютный путь программно, где хранятся журналы?
Относительные пути используются в файле log4j.properties.Где я могу программно найти, где хранятся файлы журнала log4j?
Как я могу найти абсолютный путь программно, где хранятся журналы?
Я думаю, что один из способов, как это:
, так как путь относительно системное свойство "user.dir"
так относительный путь = ./app.log
становится {user.dir}/app.log
От: http://www.gunith.com/2010/11/how-to-get-the-file-path-of-a-log4j-log-file/
Предположим, что файл log4j.properties приведен ниже:
log4j.logger.migrationlog = INFO, migration
log4j.appender.migration = org.apache.log4j.RollingFileAppender
log4j.appender.migration.File = C:/work/log/migration.log
log4j.appender.migration.MaxFileSize=20MB
log4j.appender.migration.MaxBackupIndex=1
log4j.appender.migration.layout = org.apache.log4j.PatternLayout
log4j.appender.migration.layout.conversionPattern = %d %-5p %c - %m%n
В таком случае, ваш код Java должен быть следующим,
Logger logger = Logger.getLogger("migrationlog"); //Defining the Logger
FileAppender appender = (FileAppender)logger.getAppender("migration");
return new File(appender.getFile());
Обратите внимание, что migrationlog был использован для создания объекта регистратора в первой строке. И Миграция используется для получения FileAppender, который, в свою очередь, вызывает getFile() для получения файла журнала.
Только одна ошибка, которую я сделал: Рассмотрите возможность использования '(FileAppender) logger.getRootLogger(). GetAppender (" migration ")' в случае, если вы работаете с корневым регистратором. Кроме того, вы получите исключение NullPointerException. – muffin
Но ... почему вы хотите это сделать? Log4J как-то должен абстрагировать это от вас. –
@Pascal, хотел бы предоставить доступ к журналу через визуальный интерфейс для загрузки. – JavaRocky