在生产环境中完全禁用XCGLogger的日志记录

8
我该如何在生产环境下完全禁用XCGLogger的日志记录?
目前我使用的是logLevel = .None
这是推荐的方法吗?
1个回答

9

这是一种可能的方法,但并不理想。

首先,我会想知道您是否真的想在生产环境中完全禁用日志记录。使用errorsevere日志可以成为发布应用程序的有用诊断工具。

如果您确实想要在生产环境中完全消除日志记录,我建议改变设置和使用记录器的方式,而不是官方文档中提供的方式。

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

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,并且永远不会进行任何日志记录调用。


1
顺便问一下,如果我没有完全删除生产环境中的严重和错误日志,它们如何回到我这里? - Kaunteya
使用当前版本,您需要与遇到问题的用户交谈,他们可能能够在控制台日志中看到它们。或者您可以添加一种方法,使应用程序向您发送日志文件,甚至将其报告给远程服务器。我计划在年底之前(如果时间允许)添加一些远程报告功能。 - Dave Wood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接