J'ai configuré la fraction de journalisation et essayé d'ajouter un gestionnaire supplémentaire pour stocker des journaux spécifiques dans des fichiers différents, en utilisant une catégorie, en regardant la réponse dans How to log application auditing to separate file on Wildfly 8 mais en s'adaptant à l'API Fluide Wildfly-Swarm.Comment configurer le journal d'audit d'application sur un fichier séparé dans Wildfly-swarm
Le code ressemble à ceci:
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")
;
})
;
Ensuite, je créé un enregistreur normal dans le code pour ajouter un journal, comme ceci:
private static final Logger LOGGER_AUDIT = LoggerFactory.getLogger("com.company.app.webservice");
...
LOGGER_AUDIT.info("Testing audit log")
Mais il ne fonctionne pas.
Je suppose que le nom de la catégorie doit seulement correspondre au nom de l'enregistreur, d'une manière que le nom de l'enregistreur 'commence par' le nom de la catégorie, alors il sera inclus. Ai-je raison?
Je ne sais pas s'il y a quelque chose qui ne va pas dans ma configuration ou si le Logger n'est pas censé être utilisé comme ça.
Cela a fonctionné! Merci. – xsilmarx