package org.openntf.domino.logging; import java.util.Date; import java.util.logging.Formatter; import java.util.logging.LogRecord; import org.openntf.domino.exceptions.OpenNTFNotesException; public class LogFormatterConsoleDefault extends Formatter { public static LogFormatterConsoleDefault getInstance() { return new LogFormatterConsoleDefault(); } /* * (non-Javadoc) * * @see java.util.logging.Formatter#format(java.util.logging.LogRecord) */ @Override public String format(final LogRecord logRecord) { StringBuffer sb = new StringBuffer(); sb.append(Logging.dateToString(new Date(logRecord.getMillis()))); sb.append(" ["); sb.append(logRecord.getLevel().getName()); sb.append("]: "); Throwable t = logRecord.getThrown(); StackTraceElement ste = null; if (t != null) { StackTraceElement[] stes = t.getStackTrace(); if (stes != null && stes.length > 0) ste = stes[0]; } if (ste != null) sb.append(ste.getClassName() + "." + ste.getMethodName()); else sb.append("***NO STACK TRACE***"); sb.append(" - "); sb.append(logRecord.getMessage()); sb.append('\n'); if (logRecord.getThrown() instanceof OpenNTFNotesException) { LogRecordAdditionalInfo lrai = new LogRecordAdditionalInfo(logRecord); lrai.writeToLog(sb); } if (ste != null) { sb.append("\n"); sb.append("***See configured log file for full stack trace***"); sb.append("\n"); } return sb.toString(); } }