2011-01-12 14 views
8

पर कंसोल आउटपुट को कैसे बढ़ाएं डिफ़ॉल्ट रूप से एंड्रॉइड मंच पर लॉग ऑन कंसोल आउटपुट के लिए सीमित मात्रा में चरित्र है। 3000 से अधिक बराबर के बराबर। इसलिए, यदि संदेश 3000 वर्णों से अधिक लंबा है, तो यह स्क्रीन पर नहीं दिखाया गया है।एंड्रॉइड लॉग क्लास

public class Log { 
    private static int mode = android.util.Log.INFO; 

    public static void e(String tag, String msg, Throwable tr) { 
     if ((mode & android.util.Log.ERROR) <= 0) return; 
     android.util.Log.e(tag, msg, tr); 
    } 

    public static void e(String tag, String msg) { 
     if ((mode & android.util.Log.ERROR) <= 0) return; 
     android.util.Log.e(tag, msg); 
    } 

    public static void w(String tag, String msg) { 
     if ((mode & android.util.Log.WARN) <= 0) return; 
     android.util.Log.w(tag, msg); 
    } 

    public static void i(String tag, String msg) { 
     if ((mode & android.util.Log.INFO) <= 0) return; 
     android.util.Log.i(tag, msg); 
    } 

    public static void d(String tag, String msg) { 
     if ((mode & android.util.Log.DEBUG) <= 0) return; 

      int length = msg.length(); 
      int kind = 3000; 
      if (length >= kind) { 
       int count = length/kind; 
       int u = length % kind; 
       int i = 0; 
       for (i = 0; i < count; ++i) { 
        int start = i * kind; 
        int end = start + kind; 
        android.util.Log.d(tag, msg.substring(start, end)); 
       } 
       if (u != 0) { 
        int start = length - u; 
        int end = start + u; 
        android.util.Log.d(tag, msg.substring(start, end)); 
       } 
      } else { 
       android.util.Log.d(tag, msg); 
      } 
    } 

} 

इस समस्या का एक बेहतर समाधान है:

मैं इस तुलना में एक बेहतर समाधान नहीं मिला है?

+3

आप क्या करने की कोशिश कर रहे हैं? – Vinay

+0

क्या आप लॉग आउटपुट के टेक्स्ट को लपेटने की कोशिश कर रहे हैं? – Marcovena

+0

नहीं, डिफ़ॉल्ट रूप से लॉग ऑन करें एंड्रॉइड मंच पर कंसोल आउटपुट के लिए सीमित मात्रा में वर्ण है। 3000 से अधिक बराबर के बराबर। इसलिए, यदि संदेश 3000 वर्णों से अधिक लंबा है, तो यह स्क्रीन पर नहीं दिखाया गया है। –

उत्तर

9

बड़े आउटपुट (JSON आदि) करते समय 1024 वर्ण सीमा के लिए एक वर्कअराउंड एक साधारण फॉर-लूप बनाने के लिए, उन्हें भाग में लॉग इन करना है।

यह आपके रूप में विस्तृत नहीं हो सकता है, लेकिन यह आंखों पर आसान है और कोड को बहुत ज्यादा खराब नहीं करेगा।

 String json = data.toString(); 
     int length = json.length(); 

     for(int i=0; i<length; i+=1024) 
     { 
      if(i+1024<length) 
       Log.d("JSON OUTPUT", json.substring(i, i+1024)); 
      else 
       Log.d("JSON OUTPUT", json.substring(i, length)); 
     } 
संबंधित मुद्दे