Я настроил фракцию Logging и попытался добавить дополнительный обработчик для хранения определенных журналов в разных файлах, используя категорию, просмотрев ответ в Как регистрировать аудит приложения в отдельный файл в Wildfly 8, но с адаптацией к свободному API Wildfly-Swarm.
Код выглядит следующим образом:
LoggingFraction loggingFraction = new LoggingFraction()
.consoleHandler(level, "COLOR_PATTERN")
.formatter("PATTERN", "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] (%c{1}) %s%e%n")
.formatter("COLOR_PATTERN", "%K{level}%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] (%c{1}) %s%e%n")
.formatter("AUDIT", "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p (%c{1}) %s%e%n")
.periodicSizeRotatingFileHandler("FILE", h ->{
h.level(level)
.namedFormatter("PATTERN")
.append(true)
.suffix(".yyyy-MM-dd")
.rotateSize(maxSize)
.enabled(true)
.encoding("UTF-8")
.maxBackupIndex(maxFiles);
Map<String,String> fileSpec = new HashMap<>();
fileSpec.put("path", getLogsDirectory() + "/" + "application.log");
h.file(fileSpec);
})
.periodicSizeRotatingFileHandler("FILE_AUDIT_HANDLER", h ->{
h.level(level)
.namedFormatter("AUDIT")
.append(true)
.suffix(".yyyy-MM-dd")
.rotateSize(maxSize)
.enabled(true)
.encoding("UTF-8")
.maxBackupIndex(maxFiles);
Map<String,String> fileSpec = new HashMap<>();
fileSpec.put("path", getLogsDirectory() + "/" + "application-audit.log");
h.file(fileSpec);
})
.rootLogger(l -> {
l.level(level)
.handler("CONSOLE")
.handler("FILE")
;
})
.logger("FILE_AUDIT", l -> {
l.level(level)
.category("com.company.app.webservice")
.level(Level.INFO)
.handler("FILE_AUDIT_HANDLER")
;
})
;
Затем я создал в коде обычный Logger для добавления лога, вот так:
private static final Logger LOGGER_AUDIT = LoggerFactory.getLogger("com.company.app.webservice");
...
LOGGER_AUDIT.info("Testing audit log")
Но это не работает.
Я предполагаю, что имя категории должно совпадать только с именем регистратора таким образом, чтобы имя регистратора «начиналось с» имени категории, тогда оно будет включено. Я прав?
Я не знаю, что-то не так в моей конфигурации или Logger не должен использоваться таким образом.