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, що є особливо корисним для програм, які потребують детальних налаштувань журналювання або зовнішнього моніторингу журналів.