25

我想知道.. Restkit 不断显示可达性信息,在我使用它时请求信息。这会在生产版本中自动停止,还是我需要做一些事情来阻止它们显示,比如设置 RKLog 级别?

谢谢

4

5 回答 5

39

要关闭所有内容,请将其添加到您的应用程序委托中。

RKLogConfigureByName("*", RKLogLevelOff);

注意:至少在 RestKit v0.20.x 中,您仍然会在开发版本中看到“RestKit logging initialized...”消息。

于 2013-08-02T01:27:35.380 回答
13

要仅抑制可达性消息,请使用以下命令:

RKLogConfigureByName("RestKit/Network/Reachability", RKLogLevelCritical);

查看lcl_config_components.h完整列表:

 "restkit"                           "RestKit" 
 "restkit.network"                   "RestKit/Network" 
 "restkit.network.cache"             "RestKit/Network/Cache" 
 "restkit.network.queue"             "RestKit/Network/Queue" 
 "restkit.network.reachability"      "RestKit/Network/Reachability" 
 "restkit.object_mapping"            "RestKit/ObjectMapping" 
 "restkit.core_data"                 "RestKit/CoreData" 
 "restkit.core_data.cache"           "RestKit/CoreData/Cache" 
 "restkit.core_data.search_engine"   "RestKit/CoreData/SearchEngine" 
 "restkit.support"                   "RestKit/Support" 
 "restkit.support.parsers"           "RestKit/Support/Parsers" 
 "restkit.three20"                   "RestKit/Three20" 
 "restkit.ui"                        "RestKit/UI" 
 "restkit.testing"                   "RestKit/Testing" 
 "app"                               "App" 
于 2012-07-24T20:52:04.840 回答
12

RestKit 应用程序中的日志消息由 RKLog 调用控制。例如:

    RKLogConfigureByName("RestKit", RKLogLevelWarning); 
    RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace);
    RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);

RKLog 是使用 Aren Harren 的 lcl_log(参见http://0xc0.de/LibComponentLogging)库实现的。我只是简单地浏览了 lcl 的代码,我没有看到任何会阻止它在生产版本中打印的代码,所以我会确保我的 RKLog 代码不会出现在生产代码中。

于 2012-06-08T11:02:15.047 回答
8

RestKit 配置为在 DEBUG 构建中显示信息消息及更高版本。在非调试版本中,仅记录警告、错误和关键消息。这是通过RKLogLevelDefaultin定义的RKLog.h

如果要更改 RestKit 日志组件之一的日志级别,可以RKLogConfigureByName(component, level)使用componentname 和RKLogLevellog调用levelRKLogConfigureByName("*", RKLogLevelOff)可用于禁用所有组件的日志记录。确保RKLogInitialize()之前调用过,因为RKLogInitialize()在第一次调用时会覆盖 RestKit 组件的日志级别设置。

如果要从生产构建中删除所有日志记录代码,只需将预处理器定义添加_LCL_NO_LOGGING到构建设置中即可。有关详细信息,请参阅 http://0xc0.de/LibComponentLogging

于 2012-06-10T15:47:44.650 回答
4

凯尔的解决方案是正确的。Swift 版本有点不同:

 RKlcl_configure_by_name("*", RKlcl_vOff.rawValue)
于 2016-04-27T07:33:08.010 回答