/* Copyright (C) 2002 Univ. of Massachusetts Amherst, Computer Science Dept.
This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).
http://www.cs.umass.edu/~mccallum/mallet
This software is provided under the terms of the Common Public License,
version 1.0, as published by http://www.opensource.org. For further
information, see the file `LICENSE' included with this distribution. */
/**
@author Andrew McCallum <a href="mailto:mccallum@cs.umass.edu">mccallum@cs.umass.edu</a>
*/
package cc.mallet.util;
import java.util.logging.*;
import java.io.*;
public class MalletLogger extends Logger
{
// Initialize the java.util.logging.config properties to the MALLET default config file
// in cc.mallet.util.resources.logging.properties
//Create an array that allows us to reference the java logging levels by a simple integer.
static public Level[] LoggingLevels = {Level.OFF, Level.SEVERE, Level.WARNING, Level.INFO,
Level.CONFIG, Level.FINE, Level.FINER, Level.FINEST,
Level.ALL};
static {
if (System.getProperty("java.util.logging.config.file") == null
&& System.getProperty("java.util.logging.config.class") == null) {
// TODO What is going on here? This is causing an error
//System.setProperty("java.util.logging.config.class", "cc.mallet.util.Logger.DefaultConfigurator");
try {
InputStream s = MalletLogger.class.getResourceAsStream ("resources/logging.properties");
if (s == null)
throw new IOException ();
LogManager.getLogManager().readConfiguration(s);
Logger.global.config ("Set java.util.logging properties from "+
MalletLogger.class.getPackage().getName() + "/resources/logging.properties");
} catch (IOException e) {
System.err.println ("Couldn't open "+MalletLogger.class.getName()+" resources/logging.properties file.\n"
+" Perhaps the 'resources' directories weren't copied into the 'class' directory.\n"
+" Continuing.");
}
}
}
protected MalletLogger (String name, String resourceBundleName)
{
super (name, resourceBundleName);
}
public static Logger getLogger (String name)
{
return Logger.getLogger (name);
}
/** Convenience method for finding the root logger.
*/
public Logger getRootLogger()
{
Logger rootLogger = this;
while (rootLogger.getParent() != null) {
rootLogger = rootLogger.getParent();
}
return rootLogger;
}
}