Changes

Jump to: navigation, search

Apache Kafka

1,811 bytes added, 14:28, 21 April 2019
Custom log object
<br>
===Custom log object===
Ahogy a logback hagyományos használata mellett, itt is lehetőség van egyedi üzenet objektumok használatára.  1. Az egyik lehetőség az MDC - Mapped Diagnostic Context (https://logback.qos.ch/manual/mdc.html) használata, amivel egyedi mezőket adhatunk hozzá a log-hoz, ami a kafka üzenetben is meg fog jelenni: <source lang="java"import org.slf4j.MDC;...MDC.put("transactionId", "1111");logger.info("this is the message:");</source> A fenit üzenet a kafka consumer-ben így fog megjelenni: <pre>{"@timestamp":"2019-04-21T16:20:34.620+02:00","@version":"1","message":"this is the message:","logger_name":"LogbackExample","thread_name":"main","level":"INFO","level_value":20000,"HOSTNAME":"adamDell2","transactionId":"1111","application":"this is the extra field"}</pre> <br><br>2. A másik lehetőség a '''net.logstash.logback.marker.Markers''' használata, amivel tetszőleges java POJO-kat írhatunk be JSON formátumban a logba. A példában az alábbi '''LogMessage''' java objektumot fogjuk használni.
<source lang="java">
public class LogMessage {
}
</source>
A java osztályban az import-ok közé felvesszüka Markers.append-t.
<source lang="java">
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import static net.logstash.logback.marker.Markers.append;
 
public class LogbackExample {
 
private static final Logger logger = LoggerFactory.getLogger(LogbackExample.class.getSimpleName());
 
public static void main(String... args) throws InterruptedException {
 
LogMessage message = new LogMessage("first", "second");
logger.info(append("customFieldName", message), "this is the message");
}
}
</source>
A consume-ben az üzenet az alábbi lesz:
<pre>
{"@timestamp":"2019-04-21T16:20:35.140+02:00","@version":"1","message":"this is the message","logger_name":"LogbackExample","thread_name":"main","level":"INFO","level_value":20000,"HOSTNAME":"adamDell2","transactionId":"1111","customFieldName":{"feild1":"first","field2":"second"},"application":"this is the extra field"}
</pre>
<br>

Navigation menu