3

Lumberjack Logging を使用する Objective-C ファイルを Swift に変換中です。宣言している部分を除いて、ほとんど機能しているようddloglevelです。

これを行うObjective-Cの方法:

#ifdef DEBUG
static const int ddLogLevel = LOG_LEVEL_INFO;
#else
static const int ddLogLevel = LOG_LEVEL_VERBOSE;
#endif

迅速な方法:

#if DEBUG
let ddLogLevel = LOG_LEVEL_INFO;
#else
let ddLogLevel = LOG_LEVEL_VERBOSE;
#endif

私がこのコンパイル時エラーであることを除いて: Use of unresolved identifier 'LOG_LEVEL_INFO'

なぜこうなった?どうすれば修正できますか?

4

2 に答える 2

8

回避策を使用できます。logLevel をグローバルに設定する (Objective-C でのみ可能) 代わりに、ログ レベルをすべてのロガーに明示的に設定できます。例:

class LoggerFactory {
#if DEBUG
  static let defaultLogLevel: DDLogLevel = DDLogLevel.All
#else
  static let defaultLogLevel: DDLogLevel = DDLogLevel.Info
#endif

static func initLogging() {
  DDLog.addLogger(DDTTYLogger.sharedInstance(), withLevel: defaultLogLevel)
  DDLog.addLogger(DDASLLogger.sharedInstance(), withLevel: defaultLogLevel)
}
于 2016-06-01T14:38:05.633 に答える