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    /**
023     * The interface for abstractions representing a low-level logging toolkit. The
024     * most important responsibility of implementations of this interface is to
025     * create {@link LogKitAdapter}s, allowing Blammo to work against a
026     * canonicalized logging interface behind the scenes.
027     * 
028     * Implement this interface if you want your code to use a non-supported
029     * low-level logging toolkit, i.e. application server specific logging
030     * mechanisms.
031     * 
032     * @author Wilfred Springer
033     */
034    public interface LoggingKit {
035    
036            /**
037             * Creates a <code>LogKitAdapter</code> for the class passed in.
038             * 
039             * @param cl
040             *            The class is just passed in as a courtesy to low level
041             *            frameworks, who will normally have a smart way of connecting
042             *            log messages to a class and then allow filters to be specified
043             *            on the log messages generated. (Not <code>null</code>.)
044             * @return A <code>LoggingKitAdapter</code>, used internally by Blammo to
045             *         log messages.
046             */
047            LoggingKitAdapter createLogKitAdapter(Class cl);
048    
049    }