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:
Спочатку переконайтеся, що у вас встановлений Monolog через Composer:
composer require monolog/monologПісля цього ви можете налаштувати Monolog на використання StreamHandler, націленого на php://stderr:
<?php
require 'vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// Створення каналу журналу
$log = new Logger('name');
$log->pushHandler(new StreamHandler('php://stderr', Logger::WARNING));
// Додавання повідомлення журналу в stderr
$log->warning('Це повідомлення про попередження.');Використання коду вище дозволяє Monolog відправити повідомлення про попередження в stderr, що є особливо корисним для програм, які потребують детальних налаштувань журналювання або зовнішнього моніторингу журналів.