Come si stampa una coppia chiave/valore su una voce log4j solo se il valore è impostato su MDC?Come aggiungere in modo condizionale il testo da MDC su un modello LOG4J?
Per esempio, Al momento ho il seguente schema:
%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - client=%X{client} %m%n
mi piacerebbe stampare il "client =" parte solo se v'è un valore su MDC per questa chiave.
Per esempio, quando si avvia il mio programma, non ci sarà alcun cliente registrato, quindi i registri sarebbero registrati con questo schema:
%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Tuttavia, dopo che il cliente ha effettuato l'accesso (e dopo che io ho posto MDC con una chiave "client"), ho bisogno di stamparlo utilizzando la seguente:
%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - client=%X{client} %m%n
esiste tale "modello con riserva" su log4j?
Grazie
non so una tale funzione, anche in Log4j2 ... Se c'è alcun valore per la chiave per accedere, '% X {client}' produrrà una stringa vuota. Perché non rimuovi 'client =' dal tuo pattern, o aggiungi 'c =' prefisso stringa nel tuo valore? – xav
Hm che potrebbe essere possibile! Ci proverò quando arriverò in ufficio domani. – Matheus208