/*!
@header ECDefaultLoggingFormatter
@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
18.01.06 ola initial version
22.08.06 ola license changed
-------------------------------------------------------------------------
*/
#if !defined(__ECDefaultLoggingFormatter_H)
#define __ECDefaultLoggingFormatter_H
#include
#include
#include
#include
/*!
* @macro ECDefaultLoggingFormatterFormat
* @discussion Default logging format output string
*/
#define ECDefaultLoggingFormatterFormat \
@"${__DATE__} ${__LEVEL__} ${__MESSAGE__}\n"
@class ECDefaultParameterEvaluater;
/*!
* @class ECDefaultLoggingFormatter
* @abstract Implementation of generic logging formatter.
* @discussion The format can be specified via "-setOutputFormat". This method
* expects a string containing one or multipe variables which will be
* substituted at runtime.
* The following variables are supported:
*
* - __DATE__: Will be substituted by the current date
* - __LEVEL__: Will be substituted by the logging level
* - __MESSAGE__: Will be substituted by the logging message
*
* All variables have to be specified as "${<varName>}", where
* varName equals one of the supported variables.
* At present, the date format (__DATE__) will be given in the system's
* default date format.
*/
@interface ECDefaultLoggingFormatter : ECObject {
@private
ECParameterString *parameterString;
ECDefaultParameterEvaluaterImpl *parameterEvaluater;
}
/*!
* @method defaultLoggingFormatterFormat
* @result the default format string
*/
+ (NSString *) defaultLoggingFormatterFormat;
/*!
* @method formatLoggingOutput
* @abstract used to format a logging entry.
* @param formatString NSString format string
* @param args arguments for the format string
* @result formatted string
*/
- (NSString *) formatLoggingOutputForLevel: (ECLoggingLevel) loggingLevel
format: (NSString *) formatString arguments: (va_list) args;
- setOutputFormat: (NSString *) anOutputFormat;
@end
#endif