Как настроить регистрацию программно в загрузочном приложении spring?
Использование файла xml или properties недостаточно гибко для моих нужд.
Обновление: Я хочу добиться чего-то вроде этого:
@Value("${logging.level.root}")
private String loggingLevelRoot;
@Value("${logging.level.myApp}")
private String loggingLevelMyApp;
@Value("${logging.file}")
private boolean fileAppenderEnabled;
....
setLevel(Logger.ROOT_LOGGER_NAME, Level.toLevel(loggingLevelRoot)));
setLevel("com.myapp", Level.toLevel(loggingLevelMyApp)));
setLevel("org.springframework", Level.WARN);
setLevel("org.apache.coyote", Level.INFO);
setLevel("org.apache.catalina", Level.INFO);
setLevel("org.apache.catalina.startup.DigesterFactory", Level.ERROR);
setLevel("org.apache.catalina.util.LifecycleMBeanBase", Level.ERROR);
Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
logger.addAppender(createConsoleAppender());
if (fileAppenderEnabled) {
logger.addAppender(createFileAppender());
}
Все, что у меня есть для среды:
- logging.level.root = [INFO, DEBUG,..]
- logging.level.myApp = [INFO, DEBUG,..]
- logging.file = [true | ложь]
Нет дублирования XML, Groovy и других форматов, с которыми я действительно не хочу иметь дело.
В конце концов, это действительно касается достижения такой же гибкости для ведения журнала, как spring JavaConfig для beans. XML или другие форматы файлов просто слишком статичны, требуют слишком большого дублирования и недостаточно хорошо интегрируются с остальной конфигурацией приложения.
Почему журнал должен быть настроен иначе, чем любой другой bean или сервис? Это не имеет смысла.