在生产中完全禁用XCGLogger中的日志

Kau*_*eya 8 logging ios swift xcglogger

在生产环境中如何从XCGLogger中完全禁用日志?

目前我正在使用logLevel = .None.

这是推荐的方式吗?

Dav*_*ood 9

这是一种可能的方式,但并不理想.

首先,我想知道你是否真的想完全禁用生产中的日志.using errorseverelogs可以作为已发布应用程序的有用诊断工具.

如果你想完全消除生产中的日志,我建议改变你设置和使用记录器的方式,而不是我在官方文档中的方式.

将全局日志对象更改为可选:

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
}
Run Code Online (Sandbox Code Playgroud)

然后将日志调用更改为:

log?.debug("whatever")
Run Code Online (Sandbox Code Playgroud)

这将消除记录器的任何开销,因为log它将nil在生产中并且不会进行任何记录调用.