org.gldapdaemon.logger.DefaultLog.java Source code

Java tutorial

Introduction

Here is the source code for org.gldapdaemon.logger.DefaultLog.java

Source

//
// GCALDaemon is an OS-independent Java program that offers two-way
// synchronization between Google Calendar and various iCalalendar (RFC 2445)
// compatible calendar applications (Sunbird, Rainlendar, iCal, Lightning, etc).
//
// Apache License
// Version 2.0, January 2004
// http://www.apache.org/licenses/
//
// Project home:
// http://gcaldaemon.sourceforge.net
//
package org.gldapdaemon.logger;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.logging.Log;

/**
 * Simple implementation of Log that sends all enabled log messages, for all
 * defined loggers, to System.out.
 * 
 * Created: Jan 22, 2008 12:50:56 PM
 * 
 * @author Andras Berkes
 */
public final class DefaultLog implements Log {

    // --- DATE FORMATTER ---

    private static final SimpleDateFormat timestamp = new SimpleDateFormat("HH:mm:ss");

    // --- DEBUG FLAG ---

    private final boolean debugEnabled;

    // --- CONSTRUCTOR ---

    /**
     * Construct a DefaultLog with given name.
     * 
     * @param name
     *            log name
     */
    public DefaultLog(String name) {
        if (name == null) {
            debugEnabled = false;
        } else {
            debugEnabled = name.startsWith("org.gldapdaemon");
        }
    }

    // --- SIMPLE INTERNAL LOGGER ---

    private static final synchronized void log(Object event, Throwable error) {
        System.out.print("[");
        System.out.print(timestamp.format(new Date()));
        System.out.print("] ");
        if (event == null) {
            if (error != null) {
                System.out.println(error.toString());
            }
        } else {
            System.out.println(event);
        }
        if (error != null) {
            error.printStackTrace();
        }
    }

    // --- LOG IMPLEMENTATION ---

    public final void trace(Object event) {
        if (debugEnabled) {
            log(event, null);
        }
    }

    public final void trace(Object event, Throwable error) {
        if (debugEnabled) {
            log(event, error);
        }
    }

    public final void debug(Object event) {
        if (debugEnabled) {
            log(event, null);
        }
    }

    public final void debug(Object event, Throwable error) {
        if (debugEnabled) {
            log(event, error);
        }
    }

    public final void error(Object event) {
        log(event, null);
    }

    public final void error(Object event, Throwable error) {
        log(event, error);
    }

    public final void fatal(Object event) {
        log(event, null);
    }

    public final void fatal(Object event, Throwable error) {
        log(event, error);
    }

    public final void info(Object event) {
        log(event, null);
    }

    public final void info(Object event, Throwable error) {
        log(event, error);
    }

    public final void warn(Object event) {
        log(event, null);
    }

    public final void warn(Object event, Throwable error) {
        log(event, error);
    }

    public final boolean isDebugEnabled() {
        return debugEnabled;
    }

    public final boolean isTraceEnabled() {
        return debugEnabled;
    }

    public final boolean isErrorEnabled() {
        return true;
    }

    public final boolean isFatalEnabled() {
        return true;
    }

    public final boolean isInfoEnabled() {
        return true;
    }

    public final boolean isWarnEnabled() {
        return true;
    }

}