public void append(LoggingEvent event) { StringBuffer sbuf = new StringBuffer(); sbuf.append(layout.format(event)); if(layout.ignoresThrowable()) { String[] s = event.getThrowableStrRep(); if (s != null) { int len = s.length; for(int i = 0; i < len; i++) { sbuf.append(s[i]); } } } // Normalize the log message level into the supported categories int nt_category = event.getLevel().toInt(); // Anything above FATAL or below DEBUG is labeled as INFO. //if (nt_category > FATAL || nt_category < DEBUG) { // nt_category = INFO; //} reportEvent(_handle, sbuf.toString(), nt_category); }
/** Handles a log event. For this appender, that means writing the message to each connected client. */ protected void append(LoggingEvent event) { if(sh != null) { sh.send(layout.format(event)); if(layout.ignoresThrowable()) { String[] s = event.getThrowableStrRep(); if (s != null) { StringBuffer buf = new StringBuffer(); for(int i = 0; i < s.length; i++) { buf.append(s[i]); buf.append("\r\n"); } sh.send(buf.toString()); } } } }
sbuf.append(layout.format(event)); if(layout.ignoresThrowable()) { String[] s = event.getThrowableStrRep(); if (s != null) { for(int j = 0; j < s.length; j++) {
String[] s = event.getThrowableStrRep(); if(s != null) { sbuf.append("<tr><td bgcolor=\"#993300\" style=\"color:White; font-size : xx-small;\" colspan=\"6\">");
/** * Adds the event to the buffer. When full the buffer is flushed. */ public void append(LoggingEvent event) { event.getNDC(); event.getThreadName(); // Get a copy of this thread's MDC. event.getMDCCopy(); if (locationInfo) { event.getLocationInformation(); } event.getRenderedMessage(); event.getThrowableStrRep(); buffer.add(event); if (buffer.size() >= bufferSize) flushBuffer(); }
String[] s = event.getThrowableStrRep(); if(s != null) { buf.append("<log4j:throwable><![CDATA[");
private void writeObject(ObjectOutputStream oos) throws java.io.IOException { // Aside from returning the current thread name the wgetThreadName // method sets the threadName variable. this.getThreadName(); // This sets the renders the message in case it wasn't up to now. this.getRenderedMessage(); // This call has a side effect of setting this.ndc and // setting ndcLookupRequired to false if not already false. this.getNDC(); // This call has a side effect of setting this.mdcCopy and // setting mdcLookupRequired to false if not already false. this.getMDCCopy(); // This sets the throwable sting representation of the event throwable. this.getThrowableStrRep(); oos.defaultWriteObject(); // serialize this event's level writeLevel(oos); }
/** * Creates a new <code>EventDetails</code> instance. * * @param aEvent a <code>LoggingEvent</code> value */ EventDetails(LoggingEvent aEvent) { this(aEvent.timeStamp, aEvent.getLevel(), aEvent.getLoggerName(), aEvent.getNDC(), aEvent.getThreadName(), aEvent.getRenderedMessage(), aEvent.getThrowableStrRep(), (aEvent.getLocationInformation() == null) ? null : aEvent.getLocationInformation().fullInfo); }
event.getMDCCopy(); event.getRenderedMessage(); event.getThrowableStrRep();
String[] s = event.getThrowableStrRep(); if (s != null) { for(int i = 0; i < s.length; i++) {
String[] s = event.getThrowableStrRep(); if ( s != null ) { sbuf.append( "<tr><td bgcolor=\"#993300\" style=\"color:White; font-size : xx-small;\" colspan=\"6\">" );
/** * Create a copy of event, but append a stack trace to the message (if it exists). Then it escapes * the backslashes, tabs, newlines and quotes in its message as we are sending it as JSON and we * don't want any corruption of the JSON object. */ private LoggingEvent appendStackTraceToEvent(final LoggingEvent event) { String message = event.getMessage().toString(); // If there is a stack trace available, print it out if (event.getThrowableInformation() != null) { final String[] s = event.getThrowableStrRep(); for (final String line : s) { message += "\n" + line; } } message = message .replace("\\", "\\\\") .replace("\n", "\\n") .replace("\"", "\\\"") .replace("\t", "\\t"); final Throwable throwable = event.getThrowableInformation() == null ? null : event.getThrowableInformation().getThrowable(); return new LoggingEvent(event.getFQNOfLoggerClass(), event.getLogger(), event.getTimeStamp(), event.getLevel(), message, throwable); } }
@Override public String format(LoggingEvent event) { if(lineLayout == null) { return messageLayout == null ? event.getRenderedMessage() : messageLayout.format(event); } String message = event.getRenderedMessage(); String[] lines; String[] throwable; if(messageLayout == null && (throwable = event.getThrowableStrRep()) != null) { lines = throwable; } else if(message != null) { lines = message.split("\r?\n"); } else { lines = new String[0]; } StringBuffer strBuf = new StringBuffer(); for (String line : lines) { String formattedLine = lineLayout.format(replaceEventMessageWithoutThrowable(event, line)); strBuf.append(formattedLine); } String formattedLines = strBuf.toString(); if (messageLayout == null) return formattedLines; return messageLayout.format(replaceEventMessage(event, formattedLines)); }
event.getMDCCopy(); event.getRenderedMessage(); event.getThrowableStrRep();
/** Actual writing occurs here. <p>Most subclasses of <code>WriterAppender</code> will need to override this method. @since 0.9.0 */ protected void subAppend(LoggingEvent event) { this.qw.write(this.layout.format(event)); if(layout.ignoresThrowable()) { String[] s = event.getThrowableStrRep(); if (s != null) { int len = s.length; for(int i = 0; i < len; i++) { this.qw.write(s[i]); this.qw.write(Layout.LINE_SEP); } } } if(shouldFlush(event)) { this.qw.flush(); } }
String[] s = event.getThrowableStrRep(); if (s != null) { for(int i = 0; i < s.length; i++) {
/** Perform SMTPAppender specific appending actions, mainly adding the event to a cyclic buffer and checking if the event triggers an e-mail to be sent. */ public void append(LoggingEvent event) { if(!checkEntryConditions()) { return; } event.getThreadName(); event.getNDC(); event.getMDCCopy(); if(locationInfo) { event.getLocationInformation(); } event.getRenderedMessage(); event.getThrowableStrRep(); cb.add(event); if(evaluator.isTriggeringEvent(event)) { sendBuffer(); } }
String[] stack = renderer.doRender(throwableInformation.getThrowable()); if (stack == null) { stack = element.getThrowableStrRep();
@Override public void append(LoggingEvent event) { if (event == null) return; String line = this.layout.format(event); this.lines.add(line); if (event.getThrowableInformation() != null) { for (String t: event.getThrowableStrRep()) this.lines.add(t + "\n"); } clean(this.maxlines); }