2012-06-08 14 views
25

Me pregunto .. Restkit sigue mostrando información de accesibilidad, solicita información tal como la uso. ¿Esto se detendrá automáticamente en la versión de producción o tendré que hacer algo para evitar que se muestren como configurar el nivel RKLog?Restkit, Stop Logging?

gracias

Respuesta

12

Los mensajes de registro en una aplicación RestKit son controlados por el rklog llama. Por ejemplo:

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

rklog se implementa con lcl_log de Aren Harren (ver http://0xc0.de/LibComponentLogging) biblioteca. Solo busqué brevemente el código de lcl y no vi ningún código que impidiera que se imprimiera en una versión de producción, por lo que me aseguraría de que mi código RKLog no aparezca en el código de producción.

+0

¿Significa eso que no tengo que preocuparme por ello? ¿Se eliminará en producción? No quiero que mi aplicación sea rechazada por tener mensajes de depuración :) – Veeru

+0

Disculpa si no estaba claro. No vi NINGÚN mecanismo para evitar el registro, por lo que creo que DEBES eliminarlo. Estaba un poco sorprendido por esto. No puedo probar esto, mi aplicación RestKit aún no está en la tienda de aplicaciones. –

+0

El registro de RestKit se explica aquí http://restkit-tutorials.com/logging-in-restkit-debug-tips/ –

8

RestKit está configurado para mostrar mensajes de información y más arriba en compilaciones DEBUG. En compilaciones sin DEBUG, solo se registran las advertencias, los errores y los mensajes críticos. Esto se define a través del RKLogLevelDefault en RKLog.h.

Si desea cambiar el nivel de registro para uno de los componentes de registro de RestKit, puede llamar RKLogConfigureByName(component, level) con el nombre component y RKLogLevel registro level. RKLogConfigureByName("*", RKLogLevelOff) se puede usar para deshabilitar el registro de todos los componentes. Asegúrese de llamar al RKLogInitialize() antes, porque RKLogInitialize() sobrescribe la configuración de nivel de registro para los componentes de RestKit en la primera llamada.

Si desea eliminar todo el código de registro de su compilación de producción, puede simplemente agregar el preprocesador a _LCL_NO_LOGGING a la configuración de compilación. Ver http://0xc0.de/LibComponentLogging para más detalles.

13

Para suprimir sólo los mensajes de Accesibilidad Los, utilice esto:

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

Buscar en lcl_config_components.h para la lista completa:

"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

Quería señalar que uno puede usar RKLogDebug para su aplicación agregando RKLogConfigureByName ("App", RKLogLevelDebug); Me tomó un tiempo darme cuenta de que esta línea era necesaria para usar el registro de RestKit para mi aplicación. – pshah

39

que apagar todo añadir esto a su delegado de la aplicación.

RKLogConfigureByName("*", RKLogLevelOff); 

Nota: Por lo menos en RestKit v0.20.x seguirá viendo un "registro RestKit inicializa ..." mensaje en dev construye.

4

La solución de Kyle es correcta. La versión de Swift es un poco diferente:

RKlcl_configure_by_name("*", RKlcl_vOff.rawValue)