org.apache.log4j.spi.LoggingEvent#getThrowableStrRep ( )源码实例Demo

下面列出了org.apache.log4j.spi.LoggingEvent#getThrowableStrRep ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: cyberduck   文件: TerminalLoggingAppender.java
@Override
protected void append(final LoggingEvent event) {
    final StringBuilder buffer = new StringBuilder();
    buffer.append(layout.format(event));
    if(layout.ignoresThrowable()) {
        final String[] trace = event.getThrowableStrRep();
        if(trace != null) {
            buffer.append(Layout.LINE_SEP);
            for(final String t : trace) {
                buffer.append(t).append(Layout.LINE_SEP);
            }
        }
    }
    console.printf("\r%s%s%s", Ansi.ansi()
                    .saveCursorPosition()
                    .eraseLine(Ansi.Erase.ALL)
                    .fg(Ansi.Color.MAGENTA)
                    .restoreCursorPosition(),
            buffer.toString(), Ansi.ansi().reset());
}
 
源代码2 项目: cyberduck   文件: SystemLogAppender.java
@Override
protected void append(final LoggingEvent event) {
    if(null == event.getMessage()) {
        return;
    }
    final StringBuilder buffer = new StringBuilder();
    buffer.append(layout.format(event));
    if(layout.ignoresThrowable()) {
        final String[] trace = event.getThrowableStrRep();
        if(trace != null) {
            buffer.append(Layout.LINE_SEP);
            for(final String t : trace) {
                buffer.append(t).append(Layout.LINE_SEP);
            }
        }
    }
    library.NSLog("%@", buffer.toString());
}
 
源代码3 项目: logging-log4j2   文件: WriterAppender.java
/**
 * Actual writing occurs here.
 *
 * <p>Most subclasses of <code>WriterAppender</code> will need to
 * override this method.
 * @param event The event to log.
 *
 * @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();
    }
}
 
源代码4 项目: cacheonix-core   文件: WriterAppender.java
/**
    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(this.immediateFlush) {
     this.qw.flush();
   }
 }
 
源代码5 项目: cacheonix-core   文件: NTEventLogAppender.java
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);
  }
 
源代码6 项目: logging-log4j2   文件: WriterAppender.java
/**
 * 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();
    }
}
 
源代码7 项目: suro   文件: StringLog4jFormatter.java
@Override
public String format(LoggingEvent event) {
    StringBuilder sb = new StringBuilder();
    sb.append(fmt.print(new DateTime())).append(fieldDelim);
    sb.append(event.getLevel()).append(fieldDelim).append(event.getLoggerName());

    Object obj = event.getMessage();

    routingKey = null;

    // time UTC^]Level^]Map
    if (obj instanceof Map) {
        Map map = (Map) event.getMessage();
        Iterator it = map.keySet().iterator();
        String key = null;
        while (it.hasNext()) {
            key = (String) it.next();
            sb.append(fieldDelim).append(key).append(fieldEqual).append(map.get(key));
            if (key.equalsIgnoreCase(TagKey.ROUTING_KEY)) {
                routingKey = (String) map.get(key);
            }
        }
    } else {
        // time UTC^]Level^]String
        sb.append(fieldDelim).append(obj.toString());
    }

    // Extract exceptions
    String[] s = event.getThrowableStrRep();
    if (s != null && s.length > 0) {
        sb.append(fieldDelim).append("Exception").append(fieldEqual).append(s[0]);
        for (int i = 1; i < s.length; i++) {
            sb.append('\n').append(s[i]);
        }
    }

    return sb.toString();
}
 
源代码8 项目: suro   文件: JsonLog4jFormatter.java
@SuppressWarnings("unchecked")
@Override
public String format(LoggingEvent event) {
    Object obj = event.getMessage();

    routingKey = null;

    if (obj instanceof Map) {
        Map map = (Map) event.getMessage();
        DateTime now = new DateTime();
        map.put("ts", now.getMillis());
        map.put("datetime", fmt.print(now));
        map.put("logLevel", event.getLevel().toString());
        map.put("class", event.getLoggerName());

        routingKey = (String) map.get(TagKey.ROUTING_KEY);

        // Extract exceptions
        String[] s = event.getThrowableStrRep();
        if (s != null && s.length > 0) {
            map.put("Exception", s);
        }
        try {
            return jsonMapper.writeValueAsString(map);
        } catch (JsonProcessingException e) {
            jsonParsingError.incrementAndGet();
            return stringFormatter.format(event);
        }
    } else {
        jsonParsingError.incrementAndGet();
        return stringFormatter.format(event);
    }
}
 
源代码9 项目: yacy_grid_mcp   文件: LogAppender.java
@Override
public void append(LoggingEvent event) {
    if (event == null) return;
    String line = this.layout.format(event);
    if (line != null) this.lines.add(line);
    if (event.getThrowableInformation() != null) {
        for (String t: event.getThrowableStrRep()) if (t != null)  this.lines.add(t + "\n");
    }
    if (this.a.incrementAndGet() % 100 == 0) {
        clean(this.maxlines);
        this.a.set(0);
    }
}
 
源代码10 项目: cyberduck   文件: UnifiedSystemLogAppender.java
@Override
protected void append(final LoggingEvent event) {
    if(null == event.getMessage()) {
        return;
    }
    // Category name
    final String logger = String.format("%s %s", event.getThreadName(), event.getLogger().getName());
    switch(event.getLevel().toInt()) {
        case Level.FATAL_INT:
        case Level.ERROR_INT:
            this.log(OS_LOG_TYPE_ERROR, logger, event.getMessage().toString());
            break;
        case Level.TRACE_INT:
        case Level.DEBUG_INT:
            this.log(OS_LOG_TYPE_DEBUG, logger, event.getMessage().toString());
            break;
        case Level.INFO_INT:
            this.log(OS_LOG_TYPE_INFO, logger, event.getMessage().toString());
            break;
        case Level.WARN_INT:
        default:
            this.log(OS_LOG_TYPE_DEFAULT, logger, event.getMessage().toString());
            break;
    }
    if(layout.ignoresThrowable()) {
        // Appender responsible for rendering
        final String[] trace = event.getThrowableStrRep();
        if(trace != null) {
            for(final String t : trace) {
                this.log(OS_LOG_TYPE_DEFAULT, logger, t);
            }
        }
    }
}
 
源代码11 项目: MSPaintIDE   文件: LogPipe.java
public void consume(LoggingEvent event) {
    try {
        IOUtils.write(format(event), this.standardOut);

        String[] stackTrace = event.getThrowableStrRep();
        if (stackTrace != null) {
            for (var value : stackTrace) {
                IOUtils.write(value + Layout.LINE_SEP, this.errorOut);
            }
        }
    } catch (IOException e) {
        e.printStackTrace(); // Not printing to logger as it may cause a recursive call
    }
}
 
/**
   * Send one logging event to Cassandra.  We just bind the new values into the preprocessed query
   * built by setupStatement
   */
  private void createAndExecuteQuery(LoggingEvent event)
  {
BoundStatement bound = new BoundStatement(statement);

      // A primary key combination of timestamp/hostname/threadname should be unique as long as the thread names
      // are set, but would not be backwards compatible.  Do we care?
      bound.setUUID(0, UUID.randomUUID());

      bound.setString(1, appName);
      bound.setString(2, ip);
      bound.setString(3, hostname);
      bound.setString(4, event.getLoggerName());
      bound.setString(5, event.getLevel().toString());

      LocationInfo locInfo = event.getLocationInformation();
      if (locInfo != null) {
          bound.setString(6, locInfo.getClassName());
          bound.setString(7, locInfo.getFileName());
          bound.setString(8, locInfo.getLineNumber());
          bound.setString(9, locInfo.getMethodName());
      }

      bound.setString(10, event.getRenderedMessage());
      bound.setString(11, event.getNDC());
      bound.setLong(12, new Long(LoggingEvent.getStartTime()));
      bound.setString(13, event.getThreadName());

      String[] throwableStrs = event.getThrowableStrRep();
      bound.setString(14, throwableStrs == null ? null : Joiner.on(", ").join(throwableStrs));

      bound.setLong(15, new Long(event.getTimeStamp()));
      session.execute(bound);
  }
 
源代码13 项目: cacheonix-core   文件: TelnetAppender.java
/** Handles a log event.  For this appender, that means writing the
   message to each connected client.  */
 protected void append(LoggingEvent event) {
   sh.send(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++) {
  sh.send(s[i]);
  sh.send(Layout.LINE_SEP);
}
     }
   }
 }
 
源代码14 项目: galaxy-sdk-java   文件: LCSLog4jAppender.java
@Override
protected void append(LoggingEvent loggingEvent) {
  Message message;
  if (loggingEvent.getMessage() instanceof Message) {
    message = (Message) loggingEvent.getMessage();
  } else {
    String value = layout.format(loggingEvent);
    if (layout.ignoresThrowable()) {
      String[] lineList = loggingEvent.getThrowableStrRep();
      if (lineList != null) {
        for (String line : lineList) {
          value += line + Layout.LINE_SEP;
        }
      }
    }

    message = new Message();
    message.setCreateTimestamp(System.currentTimeMillis());
    message.setMessageType(MessageType.BINARY);
    try {
      message.setMessage(value.getBytes(encoding));
    } catch (Exception e) {
      logger.error("appendMessage failed", e);
      return;
    }
  }
  lcsAppender.addMessage(message);
}
 
源代码15 项目: olat   文件: IMAppender.java
/**
 * Send the contents of the cyclic buffer as an IM message.
 */
protected void sendBuffer() {
    try {
        final StringBuilder buf = new StringBuilder();

        final int len = cb.length();
        for (int i = 0; i < len; i++) {
            final LoggingEvent event = cb.get();
            buf.append(layout.format(event));
            // if layout doesn't handle exception, the appender has to do it
            if (layout.ignoresThrowable()) {
                final String[] s = event.getThrowableStrRep();
                if (s != null) {
                    for (int j = 0; j < s.length; j++) {
                        buf.append(Layout.LINE_SEP);
                        buf.append(s[j]);
                    }
                }
            }
        }

        if (chatroom) {
            groupchat.sendMessage(buf.toString());
        } else {
            final Iterator iter = chats.iterator();
            while (iter.hasNext()) {
                final Chat chat = (Chat) iter.next();
                chat.sendMessage(buf.toString());
            }
        }

    } catch (final Exception e) {
        errorHandler.error("Could not send message in IMAppender [" + name + "]", e, ErrorCode.GENERIC_FAILURE);
    }
}
 
源代码16 项目: karaf-decanter   文件: SocketCollector.java
private void handleLog4j(LoggingEvent loggingEvent) throws UnknownHostException {
    LOGGER.debug("Received log event {}", loggingEvent.getLoggerName());
    Map<String, Object> data = new HashMap<>();
    data.put("type", "log");

    data.put("timestamp", loggingEvent.getTimeStamp());
    data.put("loggerClass", loggingEvent.getFQNOfLoggerClass());
    data.put("loggerName", loggingEvent.getLoggerName());
    data.put("threadName", loggingEvent.getThreadName());
    data.put("message", loggingEvent.getMessage());
    data.put("level", loggingEvent.getLevel().toString());
    data.put("renderedMessage", loggingEvent.getRenderedMessage());
    data.put("MDC", loggingEvent.getProperties());
    putLocation(data, loggingEvent.getLocationInformation());
    String[] throwableAr = loggingEvent.getThrowableStrRep();
    if (throwableAr != null) {
        data.put("throwable", join(throwableAr));
    }

    try {
        PropertiesPreparator.prepare(data, properties);
    } catch (Exception e) {
        LOGGER.warn("Can't prepare data for the dispatcher", e);
    }

    String topic = loggerName2Topic(loggingEvent.getLoggerName());
    Event event = new Event(topic, data);
    dispatcher.postEvent(event);
}
 
源代码17 项目: qiniu-logging-plugin   文件: Log4jQiniuAppender.java
protected void append(LoggingEvent logEvent) {
    Point point = new Point();
    point.append("timestamp", logEvent.getTimeStamp());
    point.append("level", logEvent.getLevel().toString());
    point.append("logger", logEvent.getLoggerName());
    point.append("marker", "");//log4j 1.x doest not support marker
    point.append("message", logEvent.getMessage().toString());
    point.append("thread_name", logEvent.getThreadName());
    point.append("thread_id", 0); // log4j 1.x doest not support thread id
    point.append("thread_priority", 0);
    if (logEvent.getThrowableStrRep() != null) {
        StringBuilder exceptionBuilder = new StringBuilder();
        for (String msg : logEvent.getThrowableStrRep()) {
            exceptionBuilder.append(msg).append("\n");
        }
        point.append("exception", exceptionBuilder.toString());
    } else {
        point.append("exception", "");
    }

    //lock
    this.rwLock.lock();
    if (!batch.canAdd(point)) {
        final byte[] postBody = batch.toString().getBytes(Constants.UTF_8);
        try {
            this.executorService.execute(new Runnable() {
                public void run() {
                    try {
                        Response response = logPushSender.send(postBody);
                        response.close();
                    } catch (QiniuException e) {
                        //e.printStackTrace();
                        guard.write(postBody);
                    }
                }
            });
        } catch (RejectedExecutionException ex) {
            guard.write(postBody);
        }

        batch.clear();
    }
    batch.add(point);
    this.rwLock.unlock();
}
 
源代码18 项目: cacheonix-core   文件: HTMLLayout.java
public
String format(LoggingEvent event) {

  if(sbuf.capacity() > MAX_CAPACITY) {
    sbuf = new StringBuffer(BUF_SIZE);
  } else {
    sbuf.setLength(0);
  }

  sbuf.append(Layout.LINE_SEP + "<tr>" + Layout.LINE_SEP);

  sbuf.append("<td>");
  sbuf.append(event.timeStamp - LoggingEvent.getStartTime());
  sbuf.append("</td>" + Layout.LINE_SEP);

  String escapedThread = Transform.escapeTags(event.getThreadName());
  sbuf.append("<td title=\"" + escapedThread + " thread\">");
  sbuf.append(escapedThread);
  sbuf.append("</td>" + Layout.LINE_SEP);

  sbuf.append("<td title=\"Level\">");
  if (event.getLevel().equals(Level.DEBUG)) {
    sbuf.append("<font color=\"#339933\">");
    sbuf.append(Transform.escapeTags(String.valueOf(event.getLevel())));
    sbuf.append("</font>");
  }
  else if(event.getLevel().isGreaterOrEqual(Level.WARN)) {
    sbuf.append("<font color=\"#993300\"><strong>");
    sbuf.append(Transform.escapeTags(String.valueOf(event.getLevel())));
    sbuf.append("</strong></font>");
  } else {
    sbuf.append(Transform.escapeTags(String.valueOf(event.getLevel())));
  }
  sbuf.append("</td>" + Layout.LINE_SEP);

  String escapedLogger = Transform.escapeTags(event.getLoggerName());
  sbuf.append("<td title=\"" + escapedLogger + " category\">");
  sbuf.append(escapedLogger);
  sbuf.append("</td>" + Layout.LINE_SEP);

  if(locationInfo) {
    LocationInfo locInfo = event.getLocationInformation();
    sbuf.append("<td>");
    sbuf.append(Transform.escapeTags(locInfo.getFileName()));
    sbuf.append(':');
    sbuf.append(locInfo.getLineNumber());
    sbuf.append("</td>" + Layout.LINE_SEP);
  }

  sbuf.append("<td title=\"Message\">");
  sbuf.append(Transform.escapeTags(event.getRenderedMessage()));
  sbuf.append("</td>" + Layout.LINE_SEP);
  sbuf.append("</tr>" + Layout.LINE_SEP);

  if (event.getNDC() != null) {
    sbuf.append("<tr><td bgcolor=\"#EEEEEE\" style=\"font-size : xx-small;\" colspan=\"6\" title=\"Nested Diagnostic Context\">");
    sbuf.append("NDC: " + Transform.escapeTags(event.getNDC()));
    sbuf.append("</td></tr>" + Layout.LINE_SEP);
  }

  String[] s = event.getThrowableStrRep();
  if(s != null) {
    sbuf.append("<tr><td bgcolor=\"#993300\" style=\"color:White; font-size : xx-small;\" colspan=\"6\">");
    appendThrowableAsHTML(s, sbuf);
    sbuf.append("</td></tr>" + Layout.LINE_SEP);
  }

  return sbuf.toString();
}
 
源代码19 项目: cacheonix-core   文件: SyslogAppender.java
public
void append(LoggingEvent event) {

  if(!isAsSevereAsThreshold(event.getLevel()))
    return;

  // We must not attempt to append if sqw is null.
  if(sqw == null) {
    errorHandler.error("No syslog host is set for SyslogAppedender named \""+
	this.name+"\".");
    return;
  }

  if (!layoutHeaderChecked) {
      if (layout != null && layout.getHeader() != null) {
          sendLayoutMessage(layout.getHeader());
      }
      layoutHeaderChecked = true;
  }

  String hdr = getPacketHeader(event.timeStamp);
  String packet = layout.format(event);
  if(facilityPrinting || hdr.length() > 0) {
      StringBuffer buf = new StringBuffer(hdr);
      if(facilityPrinting) {
          buf.append(facilityStr);
      }
      buf.append(packet);
      packet = buf.toString();
  }

  sqw.setLevel(event.getLevel().getSyslogEquivalent());
  //
  //   if message has a remote likelihood of exceeding 1024 bytes
  //      when encoded, consider splitting message into multiple packets
  if (packet.length() > 256) {
      splitPacket(hdr, packet);
  } else {
      sqw.write(packet);
  }

  if (layout.ignoresThrowable()) {
    String[] s = event.getThrowableStrRep();
    if (s != null) {
      for(int i = 0; i < s.length; i++) {
          if (s[i].startsWith("\t")) {
             sqw.write(hdr+TAB+s[i].substring(1));
          } else {
             sqw.write(hdr+s[i]);
          }
      }
    }
  }
}
 
源代码20 项目: cacheonix-core   文件: SMTPAppender.java
/**
    Send the contents of the cyclic buffer as an e-mail message.
  */
 protected
 void sendBuffer() {

   // Note: this code already owns the monitor for this
   // appender. This frees us from needing to synchronize on 'cb'.
   try {
     MimeBodyPart part = new MimeBodyPart();

     StringBuffer sbuf = new StringBuffer();
     String t = layout.getHeader();
     if(t != null)
sbuf.append(t);
     int len =  cb.length();
     for(int i = 0; i < len; i++) {
//sbuf.append(MimeUtility.encodeText(layout.format(cb.get())));
LoggingEvent event = cb.get();
sbuf.append(layout.format(event));
if(layout.ignoresThrowable()) {
  String[] s = event.getThrowableStrRep();
  if (s != null) {
    for(int j = 0; j < s.length; j++) {
      sbuf.append(s[j]);
      sbuf.append(Layout.LINE_SEP);
    }
  }
}
     }
     t = layout.getFooter();
     if(t != null)
sbuf.append(t);
     part.setContent(sbuf.toString(), layout.getContentType());

     Multipart mp = new MimeMultipart();
     mp.addBodyPart(part);
     msg.setContent(mp);

     msg.setSentDate(new Date());
     Transport.send(msg);
   } catch(Exception e) {
     LogLog.error("Error occured while sending e-mail notification.", e);
   }
 }