protected void log()

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);
    }