2016-05-01 7 views
1

XCGLogger githubページのREADMEファイルに以下の手順があります。複数の目的地を使用するには?

「もう一つの一般的な使用パターンは、おそらく、複数のロガーを持っているUIの問題、ネットワーキングのための1、およびデータの問題のために別のものである。

各ログの宛先は、独自のログレベルを持つことができます。利便性として、あなたログオブジェクト自体にログレベルを設定することができ、そのレベルを各送り先に渡します。次に、異なる必要がある送り先を設定します。

私は、XCGLoggerを使用すると非常に便利で有意義だと思います。どのエキスパートが目的の異なる複数の目的地を追加するかについてのデモを見せてもらえますか?または、複数のログオブジェクトを使用する必要がありますか?

答えて

3

はい、その場合、異なるログオブジェクトを使用します。

readmeの高度な使い方の例をもとに、あなたはこのような何かを行うことができます:

// Create a logger for UI related events 
let logUI = XCGLogger(identifier: "uiLogger", includeDefaultDestinations: false) 

// Create a destination for the system console log (via NSLog) 
let systemLogDestination = XCGNSLogDestination(owner: logUI, identifier: "uiLogger.systemLogDestination") 

// Optionally set some configuration options 
systemLogDestination.outputLogLevel = .Debug 
systemLogDestination.showLogIdentifier = false 
systemLogDestination.showFunctionName = true 
systemLogDestination.showThreadName = true 
systemLogDestination.showLogLevel = true 
systemLogDestination.showFileName = true 
systemLogDestination.showLineNumber = true 
systemLogDestination.showDate = true 

// Add the destination to the logger 
logUI.addLogDestination(systemLogDestination) 

// Create a logger for DB related events 
let logDB = XCGLogger(identifier: "dbLogger", includeDefaultDestinations: false) 

// Create a file log destination 
let fileLogDestination = XCGFileLogDestination(owner: logDB, writeToFile: "/path/to/file", identifier: "advancedLogger.fileLogDestination") 

// Optionally set some configuration options 
fileLogDestination.outputLogLevel = .Verbose 
fileLogDestination.showLogIdentifier = false 
fileLogDestination.showFunctionName = true 
fileLogDestination.showThreadName = true 
fileLogDestination.showLogLevel = true 
fileLogDestination.showFileName = true 
fileLogDestination.showLineNumber = true 
fileLogDestination.showDate = true 

// Add the destination to the logger 
logDB.addLogDestination(fileLogDestination) 

// Add basic app info, version info etc, to the start of the logs 
logUI.logAppDetails() 
logDB.logAppDetails() 

// Add database version to DB log 
logDB.info("DB Schema Version 1.0") 

これは、2つのログ・オブジェクト、デバッグレベルのUIイベントの一つとDBのイベントのための1つを作成します冗長レベル。

+0

ログの出力にある識別子を確認してフィルタすることはできますか? – Kevin

+0

確かに、 'showLogIdentifier'プロパティを' true'に設定し、 'grep'することができます。 –

+0

はい。どうもありがとうございました。 – Kevin

関連する問題