Restkit, Stop Logging?
Мне интересно.
Restkit продолжает показывать информацию о достижении, запрашивать информацию, когда я ее использую. Будет ли это автоматически останавливаться в производственной версии или мне нужно что-то сделать, чтобы они не отображались, как установка уровня RKLog?
спасибо
Ответы
Ответ 1
Журнальные сообщения в приложении RestKit контролируются вызовами RKLog. Например:
RKLogConfigureByName("RestKit", RKLogLevelWarning);
RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace);
RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);
RKLog реализован с помощью библиотеки Aren Harren lcl_log (см. http://0xc0.de/LibComponentLogging). Я просто кратко просмотрел код для lcl, и я не видел никакого кода, который помешал бы ему печатать в производственной версии, поэтому я бы удостоверился, что код RKLog не отображается в производственном коде.
Ответ 2
Чтобы отключить все это, добавьте это в свой делегат приложения.
RKLogConfigureByName("*", RKLogLevelOff);
Примечание. По крайней мере, в RestKit v0.20.x вы все равно увидите сообщение "RestKit logging initialized..." в dev builds.
Ответ 3
Чтобы подавить только сообщения о достижимости, используйте это:
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"
Ответ 4
RestKit настроен для отображения информационных сообщений и выше в сборках DEBUG. В сборках, отличных от DEBUG, регистрируются только предупреждения, ошибки и критические сообщения. Это определяется через RKLogLevelDefault
в RKLog.h
.
Если вы хотите изменить уровень журнала для одного из компонентов журнала RestKit, вы можете вызвать RKLogConfigureByName(component, level)
с именем component
и RKLogLevel
log level
. RKLogConfigureByName("*", RKLogLevelOff)
может использоваться для отключения ведения журнала для всех компонентов. Убедитесь, что ранее был вызван RKLogInitialize()
, поскольку RKLogInitialize()
перезаписывает параметры уровня журнала для компонентов RestKit при первом вызове.
Если вы хотите удалить весь код ведения журнала из своей производственной сборки, вы можете просто добавить препроцессор define _LCL_NO_LOGGING
к вашим настройкам сборки. Подробнее см. http://0xc0.de/LibComponentLogging.
Ответ 5
Решение Кайла верное. Версия Swift немного отличается:
RKlcl_configure_by_name("*", RKlcl_vOff.rawValue)