package cc.mallet.util; import java.util.logging.*; /** * Created by IntelliJ IDEA. * User: hough * Date: Feb 10, 2004 * Time: 4:37:07 PM * To change this template use Options | File Templates. */ public class MalletProgressMessageLogger extends MalletLogger{ protected MalletProgressMessageLogger (String name, String resourceBundleName) { super (name, resourceBundleName); } public static Logger getLogger (String name) { MalletProgressMessageLogger mpml = new MalletProgressMessageLogger(name, null); LogManager.getLogManager().addLogger(mpml); return mpml; } public void log(LogRecord logRecord) { // convert to subclass of logRecord, and pass it on.. // I'm sure this is losing information... //System.out.println("MPML log record entered " +logRecord); ProgressMessageLogRecord progressMessageLogRecord = new ProgressMessageLogRecord(logRecord); super.log(progressMessageLogRecord); // // //getParent().log(progressMessageLogRecord); // //try doing the dispatch ourselves. Fewer classes to override... // // Whole reason for overriding is so we can not send things to console twice // // once in progress message; once in parent.. // // // I think this is some approximation of what java.util.logger.log() does // //todo: add level test and filtering // // Logger currentLogger = this; // boolean sentToConsole = false; // boolean useParentHandlers = getUseParentHandlers(); // while (currentLogger != null){ // Handler[] handlers = currentLogger.getHandlers(); // for(int i=0; i<handlers.length; i++){ // if (handlers[i] instanceof ConsoleHandler){ // if (!sentToConsole){ // handlers[i].publish(progressMessageLogRecord); // sentToConsole = true; // } // }else{ // handlers[i].publish(progressMessageLogRecord); // } // } // // if (useParentHandlers) { // currentLogger = currentLogger.getParent(); // } else { // currentLogger = null; // } // } } }