/*!
@header ECLogger
@abstract Module of Encore
@availability OS X, GNUstep
@copyright 2004, 2005, 2006 Oliver Langer
Author: Oliver Langer
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-------------------------------------------------------------------------
Modification history
04.02.06 ola initial version
22.08.06 ola license changed
-------------------------------------------------------------------------
*/
#if !defined(__ECLogger_H)
#define __ECLogger_H
#include
#include
#include
#include
/*!
* @class ECLogger
* @abstract Instance configured and created by ECLoggingConfiguration and
* which implements the logging
*/
@interface ECLogger : ECObject {
@private
id loggingFormatter;
id loggingWriter;
ECLoggingLevel loggingLevel;
}
/*!
* @method initWithLoggingLevel
* @abstract Called from ECLoggingConfiguration
* @param aLoggingLevel logging level to use
* @param aLoggingFormatter instance used to format the output
* @result self
*/
- initWithLoggingLevel: (ECLoggingLevel) aLoggingLevel
withLoggingFormatter: (id ) aLoggingFormatter
withLoggingWriter: (id ) aLoggingWriter;
- (void) dealloc;
/*!
* @method critical
* @abstract If enabled, this mehod writes a message of level critical
* @param format string format to use
* @result self
*/
- critical: (NSString *) format, ...;
/*!
* @method debug
* @abstract If enabled, this mehtod writes a message of level debug
* @param format string format to use
* @result self
*/
- debug: (NSString *) format, ...;
/*!
* @method error
* @abstract If enabled, this mehtod writes a message of level error
* @param format string format to use
* @result self
*/
- error: (NSString *) format, ...;
/*!
* @method fatal
* @abstract This mehod writes a message of level fatal
* @param format string format to use
* @result self
*/
- fatal: (NSString *) format, ...;
/*!
* @method info
* @abstract If enabled, this mehtod writes a message of level info
* @param format string format to use
* @result self
*/
- info: (NSString *) format, ...;
/*!
* @method isDebugEnabled
* @result YES if debug level is being used
*/
- (BOOL) isDebugEnabled;
/*!
* @method isTraceEnabled
* @result YES if trace level is being used (at least)
*/
- (BOOL) isTraceEnabled;
/*!
* @method isInfoEnabled
* @result YES if info level is being used (at least)
*/
- (BOOL) isInfoEnabled;
/*!
* @method isWanrEnabled
* @result YES if warning level is being used (at least)
*/
- (BOOL) isWarnEnabled;
/*!
* @method isErrorEnabled
* @result YES if error level is being used (at least)
*/
- (BOOL) isErrorEnabled;
/*!
* @method isCriticalEnabled
* @result YES if critical level is being used (at least)
*/
- (BOOL) isCriticalEnabled;
/*!
* @method logUsingLevel
* @abstract internal method which performs the logging
* @param aLevel Level at which to log. Caller must ensure that this level
* is valid/activated
* @param aMsg user-defined message
* @param args parameters for user-defined message
* @result self
*/
- logUsingLevel: (ECLoggingLevel) aLevel
withMessage: (NSString *) aMsg
withArguments: (va_list) args;
/*!
* @method warn
* @abstract If enabled, this mehtod writes a message of level warning
* @param format string format to use
* @result self
*/
- warn: (NSString *) format, ...;
/*!
* @method trace
* @abstract If enabled, this mehtod writes a message of level trace
* @param format string format to use
* @result self
*/
- trace: (NSString *) format, ...;
@end
#endif