Swift プロジェクトでのロガーの使用

Swift プロジェクトで OCLogger を使用するために、このセクションに記載されているステップに従って、Swift アプリケーションを構成できます。

手順

  1. Swift を使用する iOS 用ネイティブ MobileFirst アプリケーションを作成します。詳しくは、Xcode での iOS 用のネイティブ・アプリケーションの開発を参照してください。
  2. Xcode IDE で、Swift ファイルを作成して OCLoggerSwiftExtension.swift という名前を付けます。
    図 1. 新規 Xcode ファイル
    この画面キャプチャーは、ファイル・メニューを使用してファイルを作成する方法を示しています。
    図 2. Swift ファイル・タイプ
    この画面キャプチャーは、Swift ファイルを選択する方法を示しています。
    図 3. Swift ファイルの名前付け
    この画面キャプチャーは、Swift ファイルの名前を付ける方法を示しています。
  3. 以下のコードをファイルに追加します。
    import Foundation
    
    extension OCLogger {
      //Log methods with no metadata
    
      func logTraceWithMessages(message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_TRACE, message: message, args:getVaList(args), userInfo:Dictionary<String, String>())
      }
    
      func logDebugWithMessages(message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_DEBUG, message: message, args:getVaList(args), userInfo:Dictionary<String, String>())
      }
    
      func logInfoWithMessages(message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_INFO, message: message, args:getVaList(args), userInfo:Dictionary<String, String>())
      }
    
      func logWarnWithMessages(message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_WARN, message: message, args:getVaList(args), userInfo:Dictionary<String, String>())
      }
    
      func logErrorWithMessages(message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_ERROR, message: message, args:getVaList(args), userInfo:Dictionary<String, String>())
      }
    
      func logFatalWithMessages(message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_FATAL, message: message, args:getVaList(args), userInfo:Dictionary<String, String>())
      }
    
      func logAnalyticsWithMessages(message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_ANALYTICS, message: message, args:getVaList(args), userInfo:Dictionary<String, String>())
      }
    
      //Log methods with metadata
    
      func logTraceWithUserInfo(userInfo:Dictionary<String, String>, message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_TRACE, message: message, args:getVaList(args), userInfo:userInfo)
      }
    
      func logDebugWithUserInfo(userInfo:Dictionary<String, String>, message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_DEBUG, message: message, args:getVaList(args), userInfo:userInfo)
      }
    
      func logInfoWithUserInfo(userInfo:Dictionary<String, String>, message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_INFO, message: message, args:getVaList(args), userInfo:userInfo)
      }
    
      func logWarnWithUserInfo(userInfo:Dictionary<String, String>, message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_WARN, message: message, args:getVaList(args), userInfo:userInfo)
      }
    
      func logErrorWithUserInfo(userInfo:Dictionary<String, String>, message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_ERROR, message: message, args:getVaList(args), userInfo:userInfo)
      }
    
      func logFatalWithUserInfo(userInfo:Dictionary<String, String>, message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_FATAL, message: message, args:getVaList(args), userInfo:userInfo)
      }
    
      func logAnalyticsWithUserInfo(userInfo:Dictionary<String, String>, message:String, _ args: CVarArgType...) {
        logWithLevel(OCLogger_ANALYTICS, message: message, args:getVaList(args), userInfo:userInfo)
      }
    }
  4. 以下のコードによって Swift でロガーを使用して、Swift 拡張機能が機能していることをテストします。
    OCLogger.setLevel(OCLogger_TRACE)
    OCLogger.setCapture(true);
    
    let logger : OCLogger = OCLogger.getInstanceWithPackage("MyTestLoggerPackage")
    
    logger.logTraceWithMessages("Hello %@", "Trace");
    logger.logTraceWithMessages("Hello Trace");
    
    OCLoggerDebug("Hello Debug!");
    OCLoggerDebug("Hello %@", package: "SomePackageName", args: "Debug!");

タスクの結果

出力が以下のようなものになっていることを確認します。
SwiftHelloWorld[7591:4265124] [TRACE] [MyTestLoggerPackage] Hello Trace
SwiftHelloWorld[7591:4265124] [TRACE] [MyTestLoggerPackage] Hello Trace
SwiftHelloWorld[7591:4265124] [DEBUG] [IMF] viewDidLoad() in ViewController.swift:26 :: Hello Debug!
SwiftHelloWorld[7591:4265124] [DEBUG] [SomePackageName] viewDidLoad() in ViewController.swift:27 :: Hello Debug!
注: この例で使用しているプロジェクト名は、SwiftHelloWorld です。 SwiftHelloWorld の代わりに、出力でご使用のプロジェクト名が表示されます。 コードは、ViewController.swift ファイル内の viewDidLoad() 関数に追加されました。 出力は、プロジェクト内のどこにコードを追加したかによって異なります。分かりやすくするため、この例ではタイム・スタンプを削除しています。