/* * Copyright 2003 Federal Chancellery Austria * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package at.gv.egovernment.moa.logging; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * A utility class acting as a facade to the logging subsystem. * * Configure the logging defaultHierarchy that the Logger uses by * calling setHierarchy once before calling any of the logging * output functions. * * @author Patrick Peck * @version $Id$ */ public class Logger { /** The default logging hierarchy. */ private static String defaultHierarchy = ""; /** * Get the Log object for the default hierarchy. * * @return The Log object to write log messages to. */ private static Log getLog() { return LogFactory.getLog(defaultHierarchy); } /** * Get the Log object for a given hierarchy. * * @param hierarchy The logging hierarchy for which to return the logger. * @return The Log object to write log messages to. */ private static Log getLog(String hierarchy) { return LogFactory.getLog(hierarchy); } /** * Set the default hierarchy to which the Logger should send its * logging output. * @param hierarchy The logging defaultHierarchy. */ public static void setHierarchy(String hierarchy) { defaultHierarchy = hierarchy; } /** * Test, if the trace log level is enabled. * * @return boolean true, if tracing output is enabled * false otherwise. */ public static boolean isTraceEnabled() { return getLog().isTraceEnabled(); } /** * Test, if the trace log level is enabled for a given hierarchy. * * @param hierarchy requested log hierarchy * @return boolean true, if tracing output is enabled * false otherwise. */ public static boolean isTraceEnabled(String hierarchy) { return getLog(hierarchy).isTraceEnabled(); } /** * Trace a message. * * @param message The message to trace. */ public static void trace(Object message) { getLog().trace(message); } /** * Test, if the debug log level is enabled. * * @return boolean true, if debug output is enabled * false otherwise. */ public static boolean isDebugEnabled() { return getLog().isDebugEnabled(); } /** * Test, if the debug log level is enabled for a given hierarchy. * * @param hierarchy requested log hierarchy * @return boolean true, if debug output is enabled * false otherwise. */ public static boolean isDebugEnabled(String hierarchy) { return getLog(hierarchy).isDebugEnabled(); } /** * Log a debug message. * * @param message The message to log. */ public static void debug(Object message) { getLog().debug(message); } /** * Log an info message. * * @param message The message to log. */ public static void info(Object message) { getLog().info(message); } /** * Log a warning message. * * @param message The message to log. */ public static void warn(Object message) { getLog().warn(message); } /** * Log a warning message. * * @param message The message to log. * @param t An exception that may be the cause of the warning. */ public static void warn(Object message, Throwable t) { getLog().warn(message, t); } /** * Log an error message. * * @param message The message to log. */ public static void error(Object message) { getLog().error(message); } /** * Log an error message. * * @param message The message to log. * @param t An exception that may be the cause of the error. */ public static void error(Object message, Throwable t) { getLog().error(message, t); } /** * Log a fatal error message. * * @param message The message to log. */ public static void fatal(Object message) { getLog().fatal(message); } /** * Log a fatal error message. * * @param message The message to log. * @param t An exception that may be the cause of the error. */ public static void fatal(Object message, Throwable t) { getLog().fatal(message, t); } }