Java tutorial
//package org.imirsel.util; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.Formatter; import java.util.logging.LogRecord; /** This class is used to display the formatted logs. * * @author kumaramit01 * @since 0.4.0 * */ public class NemaLogFormatter extends Formatter { /** The maximum length of a thread name */ private final static int MAX_THREAD_NAME_LENGTH = 40; /** The new line separator */ private final static String NEW_LINE = System.getProperty("line.separator"); /** The date formatter */ private final static SimpleDateFormat FORMATER = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss.SSS"); /** Should the class be reported */ private boolean bClass = true; /** Creates the default formatter */ public NemaLogFormatter() { bClass = true; } /** Creates the default formatter allowing to choose is the reporting class should be reported. * * @param bShowClass Should the class be shown? */ public NemaLogFormatter(boolean bShowClass) { bClass = bShowClass; } /** Formats the record. * * @param record The log record to format * @return The formated record */ @Override public String format(LogRecord record) { String className = record.getSourceClassName(); String threadName = Thread.currentThread().getName(); if (threadName != null && threadName.length() > MAX_THREAD_NAME_LENGTH) { threadName = threadName.substring(threadName.length() - MAX_THREAD_NAME_LENGTH); } String sTimeStamp = FORMATER.format(new Date(record.getMillis())); return sTimeStamp + "::" + record.getLevel() + ": " + record.getMessage() + " " + ((bClass) ? " [" + className + "." + record.getSourceMethodName() + "]" : "") + ((bClass) ? " <" + threadName + ":" + record.getThreadID() + ">" : "") + NEW_LINE; } }