Jak wydrukować parę klucz/wartość we wpisie log4j tylko wtedy, gdy wartość jest ustawiona w MDC?Jak warunkowo dodać tekst z MDC na wzorzec LOG4J?
Na przykład, obecnie mam następujący wzór:
%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - client=%X{client} %m%n
chciałbym wydrukować „client =” część tylko wtedy, gdy wartość na MDC dla tego klucza.
Na przykład, gdy zaczyna swój program, nie będzie klient zalogowany, więc dzienniki będą rejestrowane za pomocą tego wzoru:
%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Jednak po klient zalogowany (a po tym, jak ustawić MDC z kluczem „klient”), muszę wydrukować go za pomocą następujących czynności:
%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - client=%X{client} %m%n
Czy istnieje taka „warunkowa wzór” na log4j?
Dziękujemy
Nie znam takiej funkcji, nawet w Log4j2 ... Jeśli nie ma wartości dla klucz do zalogowania, '% X {client}' wytworzy pusty łańcuch. Dlaczego nie usuniesz 'client =' ze swojego wzorca lub dodasz przedrostek 'c =' w swojej wartości? – xav
Hm, które mogą być możliwe! Spróbuję tego, kiedy jutro wejdę do biura. – Matheus208