Было бы полезно автоматически прикреплять файлы журналов для поддержки электронной почты. Я мог бы установить путь программным путем (как в программном пути к настройке Logback Appender), но я бы предпочел, чтобы пользователи настраивали ведение журнала знакомым способом через logback.xml
. Итак, могу ли я найти, как используется loglog для ведения журнала?
Можно ли программно найти файлы журнала журналов?
Ответ 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());