在生产中完全禁用来自 XCGLogger 的日志
Completely disable logs from XCGLogger when in production
如何在生产环境中完全禁用来自 XCGLogger 的日志?
目前我正在使用logLevel = .None
。
这是推荐的方式吗?
这是一种可能的方式,但并不理想。
首先,我想知道您是否真的想在生产环境中完全禁用日志。使用 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
并且永远不会进行记录调用。
如何在生产环境中完全禁用来自 XCGLogger 的日志?
目前我正在使用logLevel = .None
。
这是推荐的方式吗?
这是一种可能的方式,但并不理想。
首先,我想知道您是否真的想在生产环境中完全禁用日志。使用 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
并且永远不会进行记录调用。