git.fiddlerwoaroof.com
Raw Blame History
//  DebugLog.m
//
//  Lisp Metadata Importer
//
//  Created by John Wiseman on 9/8/05.
//  Copyright 2005 John Wiseman. All rights reserved.

#import "DebugLog.h"


static DebugLevel GlobalDebugLevel = DEBUG_LEVEL_OFF;


DebugLevel DebugLevelNameToValue(NSString *name)
{
    DebugLevel level = DEBUG_LEVEL_OFF;
    
    if ([name isEqualToString:@"DEBUG_LEVEL_VERBOSE"])
    {
        level = DEBUG_LEVEL_VERBOSE;
    }
    else if ([name isEqualToString:@"DEBUG_LEVEL_DEBUG"])
    {
        level = DEBUG_LEVEL_DEBUG;
    }
    else if ([name isEqualToString:@"DEBUG_LEVEL_OFF"])
    {
        level = DEBUG_LEVEL_OFF;
    }
    return level;
}

void SetDebugLogLevel(DebugLevel theLevel)
{
    GlobalDebugLevel = theLevel;
}

void DebugLog(DebugLevel level, NSString *format, ...)
{
    if (level >= GlobalDebugLevel)
    {
        // get a reference to the arguments on the stack that follow
        // the format paramter
        va_list argList;
        va_start (argList, format);
        
        // NSString luckily provides us with this handy method which
        // will do all the work for us, including %@
        NSString *string;
        string = [[NSString alloc] initWithFormat: format
                                        arguments: argList];
        va_end  (argList);
        
        // Log it.
        NSLog(@"%@", string);
        
        [string release];
    }
}