下面列出了怎么用org.slf4j.event.LoggingEvent的API类实例代码及写法,或者点击链接到github查看源代码。
private LogRecord eventToRecord(LoggingEvent event, Level julLevel) {
String format = event.getMessage();
Object[] arguments = event.getArgumentArray();
FormattingTuple ft = MessageFormatter.arrayFormat(format, arguments);
if (ft.getThrowable() != null && event.getThrowable() != null) {
throw new IllegalArgumentException("both last element in argument array and last argument are of type Throwable");
}
Throwable t = event.getThrowable();
if (ft.getThrowable() != null) {
t = ft.getThrowable();
throw new IllegalStateException("fix above code");
}
LogRecord record = new LogRecord(julLevel, ft.getMessage());
record.setLoggerName(event.getLoggerName());
record.setMillis(event.getTimeStamp());
record.setSourceClassName(EventConstants.NA_SUBST);
record.setSourceMethodName(EventConstants.NA_SUBST);
record.setThrown(t);
return record;
}
/**
* @param event
* @since 1.7.15
*/
public void log(LoggingEvent event) {
Level julLevel = slf4jLevelIntToJULLevel(event.getLevel().toInt());
if (logger.isLoggable(julLevel)) {
LogRecord record = eventToRecord(event, julLevel);
logger.log(record);
}
}
public void append(LoggingEvent event) {
super.append(event);
if (available) {
Log temp = parseLog(event);
logList.add(temp);
}
}
private Log parseLog(LoggingEvent event) {
Log log = new Log();
log.setLogName(event.getLoggerName());
log.setLogLevel(event.getLevel());
log.setLogThread(event.getThreadName());
log.setLogMessage(event.getMessage());
return log;
}
/**
* {@inheritDoc}
*/
public void doAppend(final LoggingEvent event) {
final String message = event.toString();
if (!message.startsWith(TEST_PREFIX)) {
return;
}
messages.add(message);
}