PHP:
मानक त्रुटि के लिए लिखना

कैसे:

PHP में, stderr में लिखना fwrite() फंक्शन का उपयोग करके हासिल किया जा सकता है जिसके साथ पूर्वनिर्धारित स्थायी STDERR होता है, जो एरर आउटपुट स्ट्रीम को दर्शाता है।

<?php
// stderr में एक सरल संदेश लिखना।
fwrite(STDERR, "यह एक एरर संदेश है।\n");

स्क्रिप्ट को कमांड लाइन से निष्पादित करने पर सैंपल आउटपुट:

यह एक एरर संदेश है।

अधिक व्यावहारिक उपयोग का उदाहरण देने के लिए, एक परिदृश्य पर विचार करें जहां आप उपयोगकर्ता के इनपुट का पार्स कर रहे हों और अप्रत्याशित डेटा से सामना करें:

<?php
$input = 'अप्रत्याशित डेटा';

// उपयोगकर्ता इनपुट के एरर प्रोसेसिंग का अनुकरण करना।
if ($input === 'अप्रत्याशित डेटा') {
    fwrite(STDERR, "एरर: अप्रत्याशित इनपुट प्राप्त हुआ।\n");
    exit(1); // एक गैर-शून्य मूल्य के साथ निकासी करना एक एरर का संकेत है।
}

जबकि PHP की बिल्ट-इन क्षमताएँ stderr को संभालने के लिए आम तौर पर पर्याप्त होती हैं, जब अधिक जटिल एप्लिकेशन्स से निपटने या stderr लॉगिंग को बाहरी सिस्टम्स के साथ एकीकृत करने की बात आती है, तो तीसरे पक्ष के लाइब्रेरीज जैसे कि Monolog एक शक्तिशाली सहयोगी हो सकते हैं। Monolog एक लॉगिंग लाइब्रेरी है जो फाइलों, सॉकेट्स, आदि) के बीच कई अन्य लक्ष्यों के साथ-साथ stderr को संभाल सकती है।

Monolog का उपयोग करके stderr में लिखना:

सबसे पहले, सुनिश्चित करें कि आपके पास Composer के माध्यम से Monolog स्थापित है:

composer require monolog/monolog

उसके बाद, आप Monolog को php://stderr पर लक्षित StreamHandler का उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं:

<?php
require 'vendor/autoload.php';

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// एक लॉग चैनल बनाएँ
$log = new Logger('नाम');
$log->pushHandler(new StreamHandler('php://stderr', Logger::WARNING));

// stderr में एक लॉग मैसेज जोड़ें
$log->warning('यह एक चेतावनी संदेश है।');

उपरोक्त कोड Monolog का उपयोग करके stderr में एक चेतावनी संदेश भेजता है, जो विशेष रूप से उन एप्लिकेशन के लिए उपयोगी है जिन्हें विस्तृत लॉगिंग कॉन्फ़िगरेशन्स या बाहरी लॉग मॉनिटरिंग की आवश्यकता होती है।