private String getColor(PaxLoggingEvent event, boolean noColor) { String color = null; if (!noColor && event != null && event.getLevel() != null && event.getLevel().toString() != null) { String lvl = event.getLevel().toString().toLowerCase(); if (FATAL.equals(lvl)) { color = fatalColor; } else if (ERROR.equals(lvl)) { color = errorColor; } else if (WARN.equals(lvl)) { color = warnColor; } else if (INFO.equals(lvl)) { color = infoColor; } else if (DEBUG.equals(lvl)) { color = debugColor; } else if (TRACE.equals(lvl)) { color = traceColor; } if (color != null && color.length() == 0) { color = null; } } return color; }
/* (non-Javadoc) * @see org.apache.karaf.log.core.internal.LogEventFormatter#format(org.ops4j.pax.logging.spi.PaxLoggingEvent, java.lang.String, boolean) */ @Override public String format(PaxLoggingEvent event, String overridenPattern, boolean noColor) { final PatternConverter cnv = new PatternParser(overridenPattern != null ? overridenPattern : pattern).parse(); String color = getColor(event, noColor); StringBuffer sb = new StringBuffer(); sb.setLength(0); if (color != null) { sb.append(FIRST_ESC_CHAR); sb.append(SECOND_ESC_CHAR); sb.append(color); sb.append(COMMAND_CHAR); } for (PatternConverter pc = cnv; pc != null; pc = pc.next) { pc.format(sb, event); } if (event.getThrowableStrRep() != null) { for (String r : event.getThrowableStrRep()) { sb.append(r).append('\n'); } } if (color != null) { sb.append(FIRST_ESC_CHAR); sb.append(SECOND_ESC_CHAR); sb.append("0"); sb.append(COMMAND_CHAR); } return sb.toString(); }
private void testLog4j(CustomAppender customAppender) { // Ensure there's no events List events = customAppender.getEvents(); events.clear(); Class clazz = getClass(); Logger log4j = Logger.getLogger(clazz); log4j.debug(EXPECTED_MESSAGE); assertEquals(1, events.size()); PaxLoggingEvent event = (PaxLoggingEvent) events.get(0); assertEquals(Level.DEBUG.getSyslogEquivalent(), event.getLevel().getSyslogEquivalent()); assertEquals(EXPECTED_MESSAGE, event.getMessage()); events.clear(); }
protected void sendExchange(PaxLoggingEvent paxLoggingEvent) { MDC.put(PaxLoggingConsumer.class.getName(), endpoint.getName()); if (paxLoggingEvent.getProperties().containsKey(PaxLoggingConsumer.class.getName())) { return; } Exchange exchange = endpoint.createExchange(); // TODO: populate exchange headers exchange.getIn().setBody(paxLoggingEvent); LOG.trace("PaxLogging {} is firing", endpoint.getName()); try { getProcessor().process(exchange); // log exception if an exception occurred and was not handled if (exchange.getException() != null) { getExceptionHandler() .handleException("Error processing exchange", exchange, exchange.getException()); } } catch (Exception e) { getExceptionHandler() .handleException("Error processing exchange", exchange, exchange.getException()); } }
public void doAppend(final PaxLoggingEvent paxLoggingEvent) { try { // Only store TRACE events which have a trace-id. if ("TRACE".equals(paxLoggingEvent.getLevel().toString().toUpperCase()) && !paxLoggingEvent.getProperties().containsKey("trace-id")) { return; } StringBuilder writer = new StringBuilder(); writer.append("{ \"host\" : "); quote(name, writer); writer.append(",\n \"timestamp\" : "); quote(formatDate(paxLoggingEvent.getTimeStamp()), writer); writer.append(",\n \"level\" : "); quote(paxLoggingEvent.getLevel().toString(), writer); writer.append(",\n \"logger\" : "); quote(paxLoggingEvent.getLoggerName(), writer); writer.append(",\n \"thread\" : "); quote(paxLoggingEvent.getThreadName(), writer); writer.append(",\n \"message\" : "); quote(paxLoggingEvent.getMessage(), writer); String[] throwable = paxLoggingEvent.getThrowableStrRep(); if (throwable != null) { throwable = addMavenCoord(throwable); writer.append(",\n \"exception\" : ["); for (int i = 0; i < throwable.length; i++) { if (i != 0) writer.append(", "); quote(throwable[i], writer); } writer.append("]"); } writer.append(",\n \"properties\" : { "); boolean first = true; Map<String, String> properties = new HashMap<String, String>(); Set<Map.Entry> set = paxLoggingEvent.getProperties().entrySet(); for (Map.Entry entry : set) { Object key = entry.getKey(); Object value = entry.getValue(); if (key != null && value != null) { properties.put(key.toString(), value.toString()); } } addMavenCoord(properties); for (Object key : properties.keySet()) { if (first) { first = false; } else { writer.append(", "); } quote(key.toString(), writer); writer.append(": "); quote(properties.get(key).toString(), writer); } writer.append(" }"); writer.append("\n}"); storage.store(type, paxLoggingEvent.getTimeStamp(), writer.toString()); } catch (Exception e) { LOGGER.warn("Error appending log to storage", e); } }