/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package net.acesinc.data.json.generator.log; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.util.List; import java.util.Map; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** * * @author andrewserff */ public class Log4JLogger implements EventLogger { private static final Logger log = LogManager.getLogger(Log4JLogger.class); private static final Logger dataLogger = LogManager.getLogger("data-logger"); private ObjectMapper mapper = new ObjectMapper(); @Override public void logEvent(String event, Map<String, Object> producerConfig) { logEvent(event); } private void logEvent(String event) { try { Object theValue = null; if (event.startsWith("{")) { //plain json object = Map theValue = mapper.readValue(event, Map.class); } else if (event.startsWith("[")) { //array of json objects = List theValue = mapper.readValue(event, List.class); } else { //unknown, so leave it as the literal string theValue = event; } dataLogger.info(mapper.writeValueAsString(theValue)); } catch (IOException ex) { log.error("Error logging event", ex); } } @Override public void shutdown() { //nothing to shutdown } }