iOS लॉगिंग कस्टमाइज़ करें

iOS लॉगिंग को IOSLogHandler.java मैनेज करता है. यह java.util.logging.Handler को ओवरराइड करता है. अपने ऐप्लिकेशन में logging.properties रिसॉर्स जोड़कर, इसे डिफ़ॉल्ट तौर पर सेट किया जा सकता है, जैसा कि LogManager में दिखाया गया है.

लॉगिंग हैंडलर को प्रोग्राम के हिसाब से बदलना

प्रोग्राम के हिसाब से कोई लॉगिंग हैंडलर जोड़ने के लिए, उसी कोड का इस्तेमाल करें जिसे आप Java में बदलने के लिए इस्तेमाल करेंगे:

LogManager.getLogger("").addHandler(myHandler);

अगर आपको मौजूदा हैंडलर भी नहीं चलाने हैं, तो पहले इन्हें हटाएं:

Logger logger = LogManager.getLogger("");
for (Handler h : logger.getHandlers()) {
  logger.removeHandler(h);
}

प्रॉपर्टी फ़ाइल से लॉग करने वाले हैंडलर को बदलना

  1. लॉगिंग.properties फ़ाइल का इस्तेमाल करके डिफ़ॉल्ट लॉगिंग हैंडलर बदलने के लिए, आपको उस हैंडलर की तरह इस तरह का हैंडलर भी तय करना होगा (जैसा कि Java ऐप्लिकेशन के साथ किया जाता है):

    handlers=mycompany.mylogger.MyIOSLogHandler
    java.util.logging.ConsoleHandler.level=ALL
    

    इस फ़ाइल का कोई भी नाम हो सकता है. हालांकि, ऐसा तब हो सकता है, जब लोड होने के दौरान इस नाम का इस्तेमाल किया गया हो.

  2. इसके बाद, अपने प्रोजेक्ट में log.property फ़ाइल को iOS संसाधन के रूप में जोड़ें.

  3. Java ऐप्लिकेशन से अलग, J2ObjC ऐप्लिकेशन को प्रॉपर्टी फ़ाइल को साफ़ तौर पर लोड करने की ज़रूरत होती है:

    static {
      // Fetch a logger in case the following leaves logging in a bad state, such
      // as not adding the logging.properties resource or using a different name.
      Logger log = Logger.getLogger("configLogger");
      try {
        InputStream loggingProperties = SomeClass.class.getResourceAsStream("logging.properties");
        LogManager.getLogManager().readConfiguration(loggingProperties);
      } catch (IOException exception) {
        log.log(Level.SEVERE, "Error in loading configuration", exception);
      }
    }