8

本番環境で XCGLogger からのログを完全に無効にするにはどうすればよいですか?

現在、私は使用してlogLevel = .Noneいます。

これは推奨される方法ですか?

4

1 に答える 1

9

これは可能な方法の 1 つですが、理想的ではありません。

まず、本番環境でログを完全に無効にする必要があるかどうか疑問に思います。errorとログを使用するとsevere、リリースされたアプリの診断ツールとして役立ちます。

ただし、本番環境でログを完全に排除したい場合は、公式ドキュメントに記載されている方法よりも、ロガーの設定方法と使用方法を変更することをお勧めします.

代わりに、グローバル ログ オブジェクトをオプションに変更します。

let log: XCGLogger? = {
    #if DEBUG
        let log = XCGLogger.defaultInstance()
        log.setup(.Debug, showThreadName: true, showLogLevel: true, showFileNames: true, showLineNumbers: true, writeToFile: nil, fileLogLevel: .Debug)
        return log
    #else
        return nil
    #endif
}

次に、ログ呼び出しを次のように変更します。

log?.debug("whatever")

logこれにより、ロガーがnil本番環境にあり、ロギング呼び出しが行われないため、ロガーのオーバーヘッドがなくなります。

于 2015-09-27T02:01:47.477 に答える