Kotlin:
लॉगिंग

कैसे करें:

कोटलिन में, सरल मामलों के लिए निर्मित println() फंक्शन का उपयोग करके लॉगिंग की जा सकती है, या SLF4J के साथ Logback या Log4j जैसे अधिक सोफिस्टिकेटेड लाइब्रेरीज का उपयोग करके उन्नत आवश्यकताओं के लिए हो सकता है।

नीचे println() का उपयोग करते हुए एक बेसिक उदाहरण दिया गया है:

fun main() {
    println("सिम्पल लॉग संदेश: अप्लिकेशन शुरू हुआ।")
    // ... यहाँ कुछ अप्लिकेशन लॉजिक ...
    try {
        // एक एरर को सिम्यूलेट करें
        throw Exception("सिम्यूलेटेड एरर")
    } catch (e: Exception) {
        println("एरर लॉग संदेश: " + e.message)
    }
}

आउटपुट:

सिम्पल लॉग संदेश: अप्लिकेशन शुरू हुआ।
एरर लॉग संदेश: सिम्यूलेटेड एरर

और यहाँ SLF4J के साथ Logback को कॉन्फिगर किए हुए एक स्निपेट है:

import org.slf4j.LoggerFactory

private val logger = LoggerFactory.getLogger("MyAppLogger")

fun main() {
    logger.info("स्ट्रक्चर्ड लॉग संदेश: ऐप लॉन्च हुआ।")
    // ... यहाँ कुछ अप्लिकेशन लॉजिक ...
    try {
        // एक एरर को सिम्यूलेट करें
        throw Exception("सिम्यूलेटेड एरर")
    } catch (e: Exception) {
        logger.error("स्ट्रक्चर्ड एरर लॉग: ", e)
    }
}

यदि उचित Logback कॉन्फिगरेशन मान लिया जाए, तो आउटपुट स्वरूपबद्ध होगा और जब लॉग फाइल में लिखा जायेगा तो कुछ इस तरह दिख सकता है:

[INFO] - 2023-03-29 14:15:42 - MyAppLogger - स्ट्रक्चर्ड लॉग संदेश: ऐप लॉन्च हुआ।
[ERROR] - 2023-03-29 14:15:43 - MyAppLogger - स्ट्रक्चर्ड एरर लॉग: 
java.lang.Exception: सिम्यूलेटेड एरर
   at com.myapp.Main.main(Main.kt:10)

गहन अध्ययन

ऐतिहासिक रूप से, सॉफ्टवेयर में लॉगिंग अनुप्रयोगों और प्रणालियों की बढ़ती जटिलता के साथ विकसित हुई। जहां प्रोग्राम अक्सर डेवलपर द्वारा ही चलाए और डिबग किए जाते थे, वहां सरल प्रिंट कथन पर्याप्त थे। लेकिन जैसे जैसे सिस्टम नेटवर्क्ड होने लगे और विभिन्न पर्यावरणों में अलग-अलग उपयोगकर्ताओं के लिए चलने लगे, एक मजबूत और स्थायी लॉगिंग सिस्टम अनिवार्य हो गया।

कोटलिन लोकप्रिय होने से पहले, जावा डेवलपर्स ने लॉग4जे जैसी लाइब्रेरीज़ को व्यापक रूप से अपनाया और बाद में SLF4J। इन्होंने कोटलिन में समान अभ्यासों को प्रेरित किया है, जावा लाइब्रेरीज़ के साथ कोटलिन की सहयोगिता का लाभ उठाते हुए। SLF4J एक अमूर्तन स्तर के रूप में काम करता है, जिससे वास्तविक लॉगिंग कार्यान्वयन को बदला जा सकता है - आम तौर पर Logback या Log4j2 पसंदीदा विकल्�