CocoaLumberjack with Swift - Calling preprocessor macros

后端 未结 3 1724
鱼传尺愫
鱼传尺愫 2020-12-28 10:32

I started to build an IOS app with the new programming language Swift. I managed to use CocoaPods and was able to successfully create the DDTTYLogger with my CustomLoggerFor

3条回答
  •  悲哀的现实
    2020-12-28 11:21

    Okay, I just found a solution. Writing an Objective-C Wrapper class calling the preprocessors and offering methods to call it.

    Hopefully this will help other people facing the same issues.

    I first created a header file:

    @interface DDLogWrapper : NSObject
    + (void) logVerbose:(NSString *)message;
    + (void) logError:(NSString *)message;
    + (void) logInfo:(NSString *)message;
    @end
    

    With the corresponding implementation:

    #import 
    #import "DDLogWrapper.h"
    
    // Logging Framework Lumberjack
    #import "DDLog.h"
    #import "DDASLLogger.h"
    #import "DDTTYLogger.h"
    
    // Definition of the current log level
    #ifdef DEBUG
    static const int ddLogLevel = LOG_LEVEL_VERBOSE;
    #else
    static const int ddLogLevel = LOG_LEVEL_ERROR;
    #endif
    
    @implementation DDLogWrapper
    
    + (void) logVerbose:(NSString *)message {
        DDLogVerbose(message);
    }
    
    + (void) logError:(NSString *)message {
        DDLogError(message);
    }
    
    + (void) logInfo:(NSString *)message {
        DDLogInfo(message);
    }
    
    @end
    

    Important is to add the DDLogWrapper.h File to the ProjectName-Bridging-Header.h file and then you are able to instantiate in Swift the DDLogWrapper and call the methods logVerbose, logError, logInfo..

    With the following code I was able to make a log statement:

    DDLogWrapper.logVerbose("TEST");
    

提交回复
热议问题