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. Log.property फ़ाइल का इस्तेमाल करके, डिफ़ॉल्ट लॉगिंग हैंडलर को बदलने के लिए, आपको उस हैंडलर को तय करना होगा इस तरह (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);
      }
    }