/*! @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