我想知道...
我使用Restkit时,它会显示可达性信息和请求信息。这些信息在生产版本中会自动停止显示吗?还是需要像设置RKLog级别这样做才能停止显示它们?
谢谢。
谢谢。
要关闭所有内容,请将以下代码添加到您的应用程序委托中。
RKLogConfigureByName("*", RKLogLevelOff);
注意:至少在RestKit v0.20.x中,您仍将在开发版本中看到“RestKit logging initialized…”消息。
如果只想禁止显示Reachability消息,请使用以下代码:
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"
在 RestKit 应用程序中,日志消息由 RKLog 调用控制。例如:
RKLogConfigureByName("RestKit", RKLogLevelWarning);
RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace);
RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);
RKLog 是使用 Aren Harren 的 lcl_log(参见 http://0xc0.de/LibComponentLogging)库实现的。我仅粗略地浏览了 lcl 的代码,并没有看到任何防止在生产版本中打印的代码,因此我会确保我的 RKLog 代码不会出现在生产代码中。
RKLog.h
中的RKLogLevelDefault
定义的。RKLogLevel
日志级别调用RKLogConfigureByName(component, level)
函数。可以使用RKLogConfigureByName("*", RKLogLevelOff)
来禁用所有组件的日志记录。请确保在第一次调用时已调用RKLogInitialize()
,因为RKLogInitialize()
将覆盖RestKit组件的日志级别设置。_LCL_NO_LOGGING
添加到构建设置中即可。有关详细信息,请参见http://0xc0.de/LibComponentLogging。Kyle的解决方案是正确的。Swift版本略有不同:
RKlcl_configure_by_name("*", RKlcl_vOff.rawValue)