Kotlin अनुप्रयोगों में लॉगिंग: शुरुआती लोगों के लिए सर्वोत्तम अभ्यास

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin अनुप्रयोगों में लॉगिंग: शुरुआती लोगों के लिए सर्वोत्तम अभ्यास

\n\n

लॉगिंग केवल फ़ाइल में संदेश लिखना नहीं है। यह एक प्रणाली है जो डेवलपर को यह समझने में मदद करती है कि एप्लिकेशन में रीयल टाइम में क्या हो रहा है, त्रुटियों को जल्दी से ढूंढने और उपयोगकर्ता व्यवहार का विश्लेषण करने में मदद करती है। इस लेख में, हम देखेंगे कि Kotlin अनुप्रयोगों में लॉगिंग को ठीक से कैसे व्यवस्थित किया जाए, किन लाइब्रेरीज़ का उपयोग किया जाए और किन गलतियों से बचा जाए।

\n\n

लॉगिंग की आवश्यकता क्यों है?

\n

लॉगिंग कई प्रमुख कार्यों को हल करती है:

\n
    \n
  • डीबगिंग: डीबगर का उपयोग किए बिना कॉल के अनुक्रम और वेरिएबल के मान देखने की अनुमति देता है।
  • \n
  • मॉनिटरिंग: प्रोडक्शन वातावरण में एप्लिकेशन की स्थिति को ट्रैक करने में मदद करता है।
  • \n
  • ऑडिट: उपयोगकर्ता क्रियाओं और सिस्टम घटनाओं को रिकॉर्ड करता है।
  • \n
  • प्रदर्शन: लॉग की मदद से बाधाओं और देरी की पहचान की जा सकती है।
  • \n
\n\n

Kotlin में लॉगिंग के लिए लोकप्रिय लाइब्रेरीज़

\n

Kotlin और JVM इकोसिस्टम में कई सिद्ध समाधान मौजूद हैं। आइए मुख्य पर नज़र डालें:

\n
    \n
  • SLF4J (Simple Logging Facade for Java) — एक फ़ेसाड जो स्वयं लॉगिंग लागू नहीं करता, लेकिन विभिन्न कार्यान्वयनों (Logback, Log4j2, आदि) के लिए एक एकीकृत API प्रदान करता है।
  • \n
  • Logback — SLF4J का सबसे लोकप्रिय कार्यान्वयन। तेज़, लचीला, रोलिंग फ़ाइलों के समर्थन के साथ।
  • \n
  • Log4j 2 — एसिंक्रोनस लॉगिंग और फ़िल्टरिंग के समर्थन वाली एक शक्तिशाली लाइब्रेरी।
  • \n
  • Kotlin Logging — SLF4J के ऊपर एक सुविधाजनक रैपर, जो ओवरहेड को कम करने के लिए इनलाइन फ़ंक्शन का उपयोग करता है।
  • \n
\n\n

Kotlin प्रोजेक्ट में Logback सेट करना

\n

आइए Logback की चरण-दर-चरण सेटअप देखें - Kotlin/JVM अनुप्रयोगों के लिए सबसे लोकप्रिय समाधान।

\n\n

चरण 1. निर्भरताएँ जोड़ना

\n

फ़ाइल build.gradle.kts में जोड़ें:

\n
dependencies {\n    implementation("ch.qos.logback:logback-classic:1.4.14")\n    implementation("io.github.microutils:kotlin-logging-jvm:3.0.5")\n}
\n\n

चरण 2. कॉन्फ़िगरेशन फ़ाइल बनाना

\n

फ़ाइल बनाएँ src/main/resources/logback.xml:

\n
<configuration>\n    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">\n        <encoder>\n            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>\n        </encoder>\n    </appender>\n\n    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">\n        <file>logs/app.log</file>\n        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\n            <fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>\n            <maxHistory>30</maxHistory>\n        </rollingPolicy>\n        <encoder>\n            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>\n        </encoder>\n    </appender>\n\n    <root level="INFO">\n        <appender-ref ref="CONSOLE"/>\n        <appender-ref ref="FILE"/>\n    </root>\n</configuration>
\n

यह कॉन्फ़िगरेशन लॉग को कंसोल और दैनिक रोटेशन वाली फ़ाइल में आउटपुट करता है (लॉग 30 दिनों तक संग्रहीत होते हैं)।

\n\n

चरण 3. कोड में उपयोग

\n

हम kotlin-logging लाइब्रेरी का उपयोग करेंगे:

\n
import mu.KotlinLogging\n\nprivate val logger = KotlinLogging.logger {}\n\nfun main() {\n    logger.info("एप्लिकेशन शुरू हुआ")\n    logger.debug { "वेरिएबल x का मान = $x" }\n    try {\n        // कुछ कोड\n    } catch (e: Exception) {\n        logger.error(e) { "ऑपरेशन निष्पादित करने में त्रुटि" }\n    }\n}
\n\n

लॉगिंग स्तर: कब क्या उपयोग करें

\n

सही स्तर का चयन पठनीय लॉग का आधार है। Logback में निम्नलिखित स्तर उपलब्ध हैं

ब्लॉग

पुस्तक अनुशंसाएँ