Подтвердить что ты не робот

Можно ли программно найти файлы журнала журналов?

Было бы полезно автоматически прикреплять файлы журналов для поддержки электронной почты. Я мог бы установить путь программным путем (как в программном пути к настройке Logback Appender), но я бы предпочел, чтобы пользователи настраивали ведение журнала знакомым способом через logback.xml. Итак, могу ли я найти, как используется loglog для ведения журнала?

4b9b3361

Ответ 1

Вы можете получить список всех добавлений в определенном контексте. Для этого:

LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory();
for (Logger logger : context.getLoggerList()) {
        for (Iterator<Appender<ILoggingEvent>> index = logger.iteratorForAppenders(); index.hasNext();) {
            Appender<ILoggingEvent> appender = index.next();
        }
    }

Итерирует список всех добавлений во всех регистраторах для текущего контекста.

Ответ 2

Ответ, заданный @tafoo85, правильный, но он даст вам только приложения.

Чтобы более точно получить файл, используемый Loglog logger, надеюсь, что код ниже поможет кому-то.

File clientLogFile;
FileAppender<?> fileAppender = null;
LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory();
for (Logger logger : context.getLoggerList())
{
     for (Iterator<Appender<ILoggingEvent>> index = logger.iteratorForAppenders();
                 index.hasNext();)
     {
           Object enumElement = index.next();
           if (enumElement instanceof FileAppender) {
                fileAppender=(FileAppender<?>)enumElement;
           }
     }
}

if (fileAppender != null) {
     clientLogFile=new File(fileAppender.getFile());
}
else {
     clientLogFile = null;
}

Log.d("logfile path", clientLogFile.getAbsolutePath());