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

  03.02.06 ola     initial version
  22.08.06 ola     license changed
  -------------------------------------------------------------------------
  
*/ #include #include #include #include #include #include @implementation ECLoggingConfiguration - init { id tmp; self = [super init]; self->loggingFormatter = nil; tmp = [[ECDefaultLoggingFormatter alloc] init]; [self setLoggingFormatter: tmp]; [tmp release]; self->loggingWriter = nil; tmp = [[ECNSLogLoggingWriter alloc] init]; [self setLoggingWriter: tmp]; [tmp release]; self->loggingLevel = LOGLEVEL_DEBUG; return self; } - (void) dealloc { [self->loggingFormatter release]; [self->loggingWriter release]; [self->logger release]; [super dealloc]; } - (ECLogger *) logger { if( nil == self->logger ) { self->logger = [[ECLogger alloc] initWithLoggingLevel: self->loggingLevel withLoggingFormatter: self->loggingFormatter withLoggingWriter: self->loggingWriter]; } return self->logger; } - (id ) loggingFormatter { return self->loggingFormatter; } - (id ) loggingWriter { return self->loggingWriter; } - setLoggingFormatter: (id ) aLoggingFormatter { id tmp; tmp = self->loggingFormatter; self->loggingFormatter = [aLoggingFormatter retain]; [tmp release]; return self; } - setLoggingLevel: (NSString *) level { self->loggingLevel = LOGLEVEL_UNKNOWN; if( NSOrderedSame == [level caseInsensitiveCompare: @"DEBUG"] ) { self->loggingLevel = LOGLEVEL_DEBUG; } else if( NSOrderedSame == [level caseInsensitiveCompare: @"INFO"] ) { self->loggingLevel = LOGLEVEL_INFO; } else if( NSOrderedSame == [level caseInsensitiveCompare: @"TRACE"] ) { self->loggingLevel = LOGLEVEL_TRACE; } else if( NSOrderedSame == [level caseInsensitiveCompare: @"WARN"] ) { self->loggingLevel = LOGLEVEL_WARN; } else if( NSOrderedSame == [level caseInsensitiveCompare: @"ERROR"] ) { self->loggingLevel = LOGLEVEL_ERROR; } else if( NSOrderedSame == [level caseInsensitiveCompare: @"CRITICAL"] ) { self->loggingLevel = LOGLEVEL_CRITICAL; } else if( NSOrderedSame == [level caseInsensitiveCompare: @"FATAL"] ) { self->loggingLevel = LOGLEVEL_FATAL; } if( LOGLEVEL_UNKNOWN == self->loggingLevel ) { [[[ECIllegalArgumentException alloc] initWithArgumentInfo: [NSString stringWithFormat: @"ECLoggingConfiguration::setLoggingLevel: Unknown logging level %@", level]] raise]; } return self; } - setLoggingWriter: (id ) aLoggingWriter { id tmp; tmp = self->loggingWriter; self->loggingWriter = [aLoggingWriter retain]; [tmp release]; return self; } @end