Go:
लॉगिंग

कैसे:

Go में, लॉगिंग को मानक पुस्तकालय पैकेज log का उपयोग करके लागू किया जा सकता है। यह पैकेज साधारण लॉगिंग क्षमताएं प्रदान करता है, जैसे कि स्टैण्डर्ड आउटपुट या फ़ाइलों में लिखना। चलिए स्टैण्डर्ड आउटपुट में लॉगिंग का एक बुनियादी उदाहरण देखते हैं:

package main

import (
	"log"
)

func main() {
	log.Println("This is a basic log entry.")
}

आउटपुट:

2009/11/10 23:00:00 यह एक बुनियादी लॉग प्रविष्टि है।

लॉग प्रविष्टि की शुरुआत में समय छाप log पैकेज द्वारा स्वतः जोड़ी जाती है। अगला, चलिए स्टैण्डर्ड आउटपुट के बजाय फ़ाइल में लॉग करने का तरीका तलाशते हैं:

package main

import (
	"log"
	"os"
)

func main() {
	file, err := os.OpenFile("app.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0666)
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	log.SetOutput(file)
	log.Println("This log entry goes to a file.")
}

अब, चलिए एक और उन्नत उपयोग का प्रयोग करते हैं: लॉगिंग प्रारूप को अनुकूलित करना। Go आपको log.New() के साथ एक अनुकूलित लॉगर बनाने की अनुमति देता है:

package main

import (
	"log"
	"os"
)

func main() {
	logger := log.New(os.Stdout, "CUSTOM LOG: ", log.Ldate|log.Ltime|log.Lshortfile)
	logger.Println("This is a custom log message.")
}

आउटपुट:

CUSTOM LOG: 2009/11/10 23:00:00 main.go:11: यह एक अनुकूलित लॉग संदेश है।

इस उदाहरण में प्रत्येक लॉग संदेश के आगे “CUSTOM LOG: " जोड़ा गया है और इसमें दिनांक, समय, और सोर्स फ़ाइल स्थान शामिल हैं।

गहराई से समझे

Go मानक पुस्तकालय का log पैकेज सीधा और कई एप्लिकेशनों के लिए पर्याप्त है, लेकिन इसमें तृतीय-पक्ष लॉगिंग पुस्तकालयों में पाए जाने वाले कुछ अधिक सोफिस्टिकेटेड फ़ीचर्स की कमी है, जैसे कि संरचित लॉगिंग, लॉग रोटेशन, और स्तर-आधारित लॉगिंग। zap और logrus जैसे पैकेज ये उन्नत फ़ीचर्स प्रदान करते हैं और उनके प्रदर्शन और लचीलापन के लिए Go समुदाय में प्रसिद्ध हैं।

उदाहरण के लिए, संरचित लॉगिंग आपको एक संरचित प्रारूप (जैसे JSON) में डेटा लॉग करने की अनुमति देती है, जो आधुनिक क्लाउड-आधारित एप्लिकेशनों के लिए विशेष रूप से उपयोगी है जहां विभिन्न उपकरणों या सेवाओं द्वारा लॉगों का विश्लेषण किया जा सकता है। zap विशेष रूप से अपने उच्च प्रदर्शन और कम आवंटन ओवरहेड के लिए जाना जाता है, जिससे यह गति और क्षमता के लिए महत्वपूर्ण एप्लिकेशनों के लिए उपयुक्त होता है।

ऐतिहासिक रूप से, Go में लॉगिंग भाषा के आरंभ होने के बाद से काफी विकसित हुई है। Go के प्रारंभिक संस्करणों ने log पैकेज में देखे गए बुनियादी लॉगिंग क्षमताओं को प्रदान कि�