Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 我可以在发布版本中保留日志记录吗?_Cocoa_Logging_Build_Release - Fatal编程技术网

Cocoa 我可以在发布版本中保留日志记录吗?

Cocoa 我可以在发布版本中保留日志记录吗?,cocoa,logging,build,release,Cocoa,Logging,Build,Release,我读过一些主张从发布版本中删除NSLog语句的文章 它是否可以接受,而不是混乱的主要日志与垃圾,写它到苹果系统日志,而不是,然后它会隐藏在主要日志 还是我只是把事情复杂化了?在发布后的应用程序中,日志记录是否有助于您查明错误?还有一种情况会通过删除这些语句来询问性能优势。陪审团似乎仍对任何硬性数字犹豫不决,但传统智慧认为,要消除这些硬性数字,就要用一个宏来限定它们的包含条件。您仍然可以获得调试信息,用户也可以获得一个没有混乱的应用程序。我发现,我在开发过程中添加的日志消息通常会做以下三件事之一:

我读过一些主张从发布版本中删除NSLog语句的文章

它是否可以接受,而不是混乱的主要日志与垃圾,写它到苹果系统日志,而不是,然后它会隐藏在主要日志


还是我只是把事情复杂化了?在发布后的应用程序中,日志记录是否有助于您查明错误?

还有一种情况会通过删除这些语句来询问性能优势。陪审团似乎仍对任何硬性数字犹豫不决,但传统智慧认为,要消除这些硬性数字,就要用一个宏来限定它们的包含条件。您仍然可以获得调试信息,用户也可以获得一个没有混乱的应用程序。

我发现,我在开发过程中添加的日志消息通常会做以下三件事之一:

  • 帮助调试和测试新的、未完成的功能和代码路径
  • 提供有关程序正常运行的信息,如任务完成和常见错误情况(例如,没有互联网连接)
  • 提供有关异常或意外事件的详细信息,包括危险或未经专门处理的错误情况、软件更新以及来自服务器连接或文件的格式错误的数据
  • 功能完成后,我通常会删除第一类中的消息,第二类中的消息会用一个宏(如链接问题中的宏)过滤掉,第三类中的消息会保留在发布中

    很明显,这条线很模糊,但我认为这可以归结为对原木的尊重。如果您的应用程序中充斥着无用的信息,则很难注意到来自其他应用程序的错误,这将是一个(小的)资源消耗


    使用ASL函数记录优先级较低的消息,如大多数用户看不到的
    debug
    info
    ,这对于处于灰色区域的消息是一个好主意。

    第三类消息应该是警报或显示的错误,而不是日志语句。如果您的应用程序在控制台上记录了故障,有多少用户会让控制台保持运行?@Peter,我会记录错误和警告,以便我们的崩溃处理程序(或用户反馈提交)可以通过ASL搜索这些日志并将其发送给我们;用户不必打开控制台,但这比让他们记住错误对话框的措辞要容易得多@彼得:我同意。日志消息用于记录不适当或不够具体的信息,以显示在UI中,或记录不重要的事件,以告知用户事件发生时的情况,但可能有助于以后找到问题的原因。精彩的讨论,第章。我担心自己脑子里会有点搞笑,因为我想照巴里说的去做,但从来没有听到任何人谈论过。现在我知道这是一个现实的选择,我会考虑这样做。