in src/main/java/org/apache/commons/logging/impl/SimpleLog.java [520:591]
protected void log(final int type, final Object message, final Throwable t) {
// Use a string buffer for better performance
final StringBuilder buf = new StringBuilder();
// Append date-time if so configured
if (showDateTime) {
final Date now = new Date();
String dateText;
synchronized (dateFormatter) {
dateText = dateFormatter.format(now);
}
buf.append(dateText);
buf.append(" ");
}
// Append a readable representation of the log level
switch (type) {
case LOG_LEVEL_TRACE:
buf.append("[TRACE] ");
break;
case LOG_LEVEL_DEBUG:
buf.append("[DEBUG] ");
break;
case LOG_LEVEL_INFO:
buf.append("[INFO] ");
break;
case LOG_LEVEL_WARN:
buf.append("[WARN] ");
break;
case LOG_LEVEL_ERROR:
buf.append("[ERROR] ");
break;
case LOG_LEVEL_FATAL:
buf.append("[FATAL] ");
break;
default:
// Or throw?
buf.append("[UNDEFINED] ");
break;
}
// Append the name of the log instance if so configured
if (showShortName) {
if (shortLogName == null) {
// Cut all but the last component of the name for both styles
final String slName = logName.substring(logName.lastIndexOf(".") + 1);
shortLogName = slName.substring(slName.lastIndexOf("/") + 1);
}
buf.append(String.valueOf(shortLogName)).append(" - ");
} else if (showLogName) {
buf.append(String.valueOf(logName)).append(" - ");
}
// Append the message
buf.append(String.valueOf(message));
// Append stack trace if not null
if (t != null) {
buf.append(" <");
buf.append(t.toString());
buf.append(">");
final StringWriter sw = new StringWriter(1024);
try (PrintWriter pw = new PrintWriter(sw)) {
t.printStackTrace(pw);
}
buf.append(sw.toString());
}
// Print to the appropriate destination
write(buf);
}