001    package com.agilejava.blammo;
002    
003    /* 
004     * Copyright (C) 2006, Wilfred Springer
005     *
006     * This library is free software; you can redistribute it and/or
007     * modify it under the terms of the GNU Lesser General Public
008     * License as published by the Free Software Foundation; either
009     * version 2.1 of the License, or (at your option) any later version.
010     * 
011     * This library is distributed in the hope that it will be useful,
012     * but WITHOUT ANY WARRANTY; without even the implied warranty of
013     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014     * Lesser General Public License for more details.
015     *
016     * You should have received a copy of the GNU Lesser General Public
017     * License along with this library; if not, write to the Free Software
018     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
019     */
020    
021    /**
022     * The interface to be implemented by all logging toolkit adapters. (Think of it
023     * as a rudimentary interface similar to Commons Logging, without the
024     * bootstrapping mechanism.)
025     * 
026     * @author Wilfred Springer
027     */
028    public interface LoggingKitAdapter {
029    
030            /**
031             * The INFO log level.
032             */
033            final String LEVEL_INFO = "info";
034    
035            /**
036             * The DEBUG log level.
037             */
038            final String LEVEL_DEBUG = "debug";
039    
040            /**
041             * The ERROR log level.
042             */
043            final String LEVEL_ERROR = "error";
044    
045            /**
046             * The WARN log level.
047             */
048            final String LEVEL_WARN = "warn";
049    
050            /**
051             * Logs a message, passing in the log level and the message.
052             * 
053             * @param level
054             *            The log level. (Either {@link #LEVEL_DEBUG},
055             *            {@link #LEVEL_ERROR}, {@link #LEVEL_INFO} or
056             *            {@link #LEVEL_WARN}).
057             * @param producer
058             *            The {@link MessageProducer} producing the message.
059             */
060            void log(String level, MessageProducer producer);
061    
062            /**
063             * Logs the message, passing in the log level, the message and the
064             * <code>Throwable</code>.
065             * 
066             * @param level
067             *            The log level. (Either {@link #LEVEL_DEBUG},
068             *            {@link #LEVEL_ERROR}, {@link #LEVEL_INFO} or
069             *            {@link #LEVEL_WARN}).
070             * @param message
071             *            The {@link MessageProducer} producing the message.
072             * @param throwable
073             *            The associated exception.
074             */
075            void log(String level, MessageProducer producer, Throwable throwable);
076    
077    }