2012-06-08 101 views
25

我想知道.. Restkit不断显示可达性信息,请求信息,因为我使用它。这会自动停止在生产版本或我需要做些什么来阻止他们像设置RKLog级别显示?Restkit,停止记录?

谢谢

回答

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代码不会出现在生产代码中。

+0

那么这是否意味着我不必担心它?它会在生产中被移除吗?我不希望我的应用程序被拒绝,因为有调试消息:) – Veeru

+0

对不起,如果我不清楚。我没有看到任何阻止日志记录的机制,所以我认为你需要删除它。我对此感到有点惊讶。我无法测试这个,我的RestKit应用程序还没有在应用程序商店。 –

+0

RestKit logging在这里解释http://restkit-tutorials.com/logging-in-restkit-debug-tips/ –

8

RestKit配置为在DEBUG构建中显示信息消息和以上。在非DEBUG构建中,仅记录警告,错误和关键消息。这通过在RKLog.h中定义。

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

如果要从生产版本中删除所有日志代码,只需将预处理器定义_LCL_NO_LOGGING添加到您的生成设置即可。详情请见http://0xc0.de/LibComponentLogging

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" 
+0

我想指出的是,可以通过添加RKLogConfigureByName(“App”,RKLogLevelDebug)来使用RKLogDebug作为他们的应用程序;我花了一段时间才发现这条线需要使用RestKit的日志记录功能来处理我的应用程序。 – pshah

39

要关闭所有设备添加到您的应用程序代理。

RKLogConfigureByName("*", RKLogLevelOff); 

注:至少在RestKit v0.20.x你仍然会看到一个“RestKit记录初始化......”在开发中的消息的基础之上。

4

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

RKlcl_configure_by_name("*", RKlcl_vOff.rawValue)