रेट्रोफिट 2.0 :
अद्यतन: @ मार्क मार्कस Pöhls
रेट्रोफिट 2 में लॉगिंग
Retrofit 2 पूरी तरह से किसी भी नेटवर्क ऑपरेशन के लिए OkHttp पर निर्भर करता है। चूंकि OkHttp Retrofit 2 की एक सहकर्मी निर्भरता है, इसलिए Retrofit 2 को एक स्थिर रिलीज़ के रूप में रिलीज़ होने के बाद आपको अतिरिक्त निर्भरता जोड़ने की आवश्यकता नहीं होगी।
OkHttp 2.6.0 जहाजों को एक आंतरिक निर्भरता के रूप में लॉगिंग इंटरसेप्टर के साथ और आप सीधे अपने रेट्रोफिट क्लाइंट के लिए इसका उपयोग कर सकते हैं। Retrofit 2.0.0-beta2 अभी भी OkHttp 2.5.0 का उपयोग करता है। भविष्य के रिलीज उच्च OkHttp संस्करणों के लिए निर्भरता को टक्कर देंगे। इसलिए आपको लॉगिंग इंटरसेप्टर को मैन्युअल रूप से आयात करने की आवश्यकता है। लॉगिंग इंटरसेप्टर निर्भरता लाने के लिए अपनी बिल्ड.gradle फ़ाइल के भीतर अपने ग्रेडेल आयात में निम्न पंक्ति जोड़ें।
compile 'com.squareup.okhttp3:logging-interceptor:3.9.0'
आप इस इंटरसेप्टर के बारे में स्क्वायर के गिटहब पेज पर भी जा सकते हैं
लॉगिंग को रेट्रोफिट 2 में जोड़ें
अपने ऐप को विकसित करने और डिबगिंग उद्देश्यों के लिए, अनुरोध और प्रतिक्रिया की जानकारी दिखाने के लिए एक लॉग सुविधा को एकीकृत करना अच्छा है। चूंकि रेट्रोफिट 2 में लॉगिंग अब डिफ़ॉल्ट रूप से एकीकृत नहीं है, इसलिए हमें OkHttp के लिए लॉगिंग इंटरसेप्टर जोड़ना होगा। सौभाग्य से OkHttp इस इंटरसेप्टर के साथ पहले से ही जहाज है और आपको केवल अपने OkHttpClient के लिए इसे सक्रिय करने की आवश्यकता है।
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
// set your desired log level
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
// add your other interceptors …
// add logging as last interceptor
httpClient.addInterceptor(logging); // <-- this is the important line!
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient.build())
.build();
हम अंतिम इंटरसेप्टर के रूप में लॉगिंग को जोड़ने की सलाह देते हैं, क्योंकि यह आपके अनुरोध पर पिछले इंटरसेप्टर के साथ जोड़ी गई जानकारी को भी लॉग करेगा।
लॉग स्तर
लॉगिंग बहुत अधिक जानकारी आपके Android मॉनिटर को उड़ा देगी, यही कारण है कि OkHttp के लॉगिंग इंटरसेप्टर में चार लॉग स्तर हैं: NONE, BASIC, HEADERS, BODY। हम आपको लॉग स्तरों में से प्रत्येक के माध्यम से चलेंगे और उनके आउटपुट का वर्णन करेंगे।
अधिक जानकारी के लिए कृपया देखें: रेट्रोफ़िट 2 - लॉग अनुरोध और प्रतिक्रियाएं
पुराने उत्तर:
अब रेट्रोफिट 2 में कोई लॉगिंग नहीं है। विकास टीम ने लॉगिंग सुविधा को हटा दिया। ईमानदार होने के लिए, लॉगिंग सुविधा वैसे भी विश्वसनीय नहीं थी। जेक व्हार्टन ने स्पष्ट रूप से कहा कि लॉग किए गए संदेश या ऑब्जेक्ट मान हैं और उन्हें सत्य होने का प्रमाण नहीं दिया जा सकता है। सर्वर पर आने वाला वास्तविक अनुरोध एक परिवर्तित अनुरोध निकाय या कुछ और हो सकता है।
भले ही डिफ़ॉल्ट रूप से कोई एकीकृत लॉगिंग नहीं है, आप किसी भी जावा लकड़हारे का लाभ उठा सकते हैं और इसे एक अनुकूलित ओक्टेट इंटरसेप्टर के भीतर उपयोग कर सकते हैं।
Retrofit 2 के बारे में अधिक जानकारी कृपया देखें:
रिट्रोफिट - आरंभ करना और Android क्लाइंट बनाना
FULL
शरीर को देने वाला है लेकिन ऐसा प्रतीत नहीं होता है।