Не могу получить appender из log4s.property

261
05 ноября 2017, 16:09

Подскажите как получить все аппендеры из log4j.property?

# Root logger option
log4j.rootLogger=ALL, console
# Direct log messages to console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{dd.MM.yy HH:mm:[%-5p] %c{1}.%M(%L): %m%n
# Direct log messages to file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{dd.MM.yy HH:mm:ss} [%-5p] %c{1}.%M(%L): %m%n
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.MaxFileSize=1KB
log4j.appender.file.MaxBackupIndex=2

Мои реализация не находит аппендер file:

private static <APPENDER> APPENDER getAppender(Class<APPENDER> appenderClass, String appenderName) {
    for (Enumeration loggers = LogManager.getCurrentLoggers(); loggers.hasMoreElements(); ) {
        Logger logger = (Logger) loggers.nextElement();
        for (Enumeration appenders = logger.getParent().getAllAppenders(); appenders.hasMoreElements(); ) {
            Appender appender = (Appender) appenders.nextElement();
            if (appenderClass.equals(appender.getClass()) && appenderName.equalsIgnoreCase(appender.getName())) {
                return (APPENDER) appender;
            }
        }
    }
    throw new NoClassDefFoundError("appender "+appenderName+" "+ appenderClass+" not found");
}

Вероятно он и не загружается? Как получить аппенедр file в runtime для добавления в rootlogger?

Я хочу реализовать по умолчанию вывод в консоль, но если в настройках проекта указано, что вывод должен быть в файл или файл и консоль или ... , то подключать/отключать через rootLogger нужные аппендеры динамически... , описание всех аппендеров держать в стандартном файле настроек.

READ ALSO
запустить python-скрипт через терминал, Java

запустить python-скрипт через терминал, Java

Не запускается python-скрипт, путь к файлу правильныйТа же самая команда запускается через терминал вручную

246
Как в prepared statmet передать List стрингов

Как в prepared statmet передать List стрингов

Как сделать так чтобы этот prepare statment получал list стрингов и записывал их в бд?

259
Как запустить такой проект в idea?

Как запустить такой проект в idea?

Стыдно, да, но не могу разобраться,так как за Джаву взялся только толькоРазбираю пример, да не могу запустить

264
Ошибка подключения библиотеки material dialogs

Ошибка подключения библиотеки material dialogs

Где можно скачать или может у кого есть файл библиотеки 'comafollestad:material-dialogs:0

189