/* * This file is part of "SnipSnap Radeox Rendering Engine". * * Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel * All Rights Reserved. * * Please visit http://radeox.org/ for updates and contact. * * --LICENSE NOTICE-- * 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. * --LICENSE NOTICE-- */ package org.radeox.util.logging; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; /** * Logger for logging events. Logger uses al LoggerImplementation for logging * concrete logging, e.g. SystemOutLogger * * @author stephan * @version $Id: Logger.java 7756 2006-04-13 12:25:49Z ian@caret.cam.ac.uk $ */ public class Logger { // private static LogHandler handler = new ApplicationLogger(); private static LogHandler handler = new SystemErrLogger(); public final static boolean PRINT_STACKTRACE = true; public final static DateFormat format = new SimpleDateFormat("hh:mm:ss.SSS"); public final static int ALL = -1; public final static int NONE = 4; public final static int PERF = 0; public final static int DEBUG = 1; public final static int WARN = 2; public final static int FATAL = 3; public final static int LEVEL = ALL; public final static String[] levels = { "PERF ", "DEBUG ", "WARN ", "FATAL " }; public static void log(String output) { if (LEVEL <= DEBUG) log(Logger.DEBUG, output); } public static void perf(String output) { if (LEVEL <= PERF) log(Logger.PERF, output); } public static void debug(String output) { if (LEVEL <= DEBUG) log(Logger.DEBUG, output); } public static void warn(String output) { if (LEVEL <= WARN) log(Logger.WARN, output); } public static void warn(String output, Throwable e) { if (LEVEL <= WARN) log(Logger.WARN, output, e); } public static void fatal(String output) { if (LEVEL <= FATAL) log(Logger.WARN, output); } public static void fatal(String output, Exception e) { if (LEVEL <= FATAL) log(Logger.WARN, output, e); } public static void log(String output, Exception e) { if (LEVEL <= DEBUG) log(Logger.DEBUG, output, e); } public static void log(int level, String output) { handler.log(format.format(new Date()) + " " + levels[level] + " - " + output); } public static void log(int level, String output, Throwable e) { handler.log(format.format(new Date()) + " " + levels[level] + " - " + output + ": " + e.getMessage(), e); } public static void setHandler(LogHandler handler) { Logger.handler = handler; } }