TGViewer
Библиотека PHP программиста 👨🏼‍💻👩‍💻 Библиотека PHP программиста 👨🏼‍💻👩‍💻 @php_lib · 2.06K subscribers
Post #756 941
Сегодня я расскажу вам о том, как настроить эффективное логирование ошибок в PHP-приложениях с помощью библиотеки Monolog.

В повседневной разработке критично не упустить важные ошибки и события, но при этом не завалить логи мусором. Monolog позволяет:

1. Группировать логи по каналам
Вы можете создавать каналы для разных частей приложения:


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

$dbLogger = new Logger('database');
$dbLogger->pushHandler(new StreamHandler(__DIR__.'/logs/db.log', Logger::WARNING));

2. Использовать разные обработчики (handlers)
Отправка ошибок в файлы, на почту или в Slack:


use Monolog\Handler\NativeMailerHandler;
$emailHandler = new NativeMailerHandler('you@domain.com', 'DB Error', 'app@domain.com', Logger::ERROR);
$dbLogger->pushHandler($emailHandler);

3. Добавлять процессоры (processors)
Автоматически дополнять каждый лог юзер-агентом, IP и временем выполнения:


use Monolog\Processor\WebProcessor;
$dbLogger->pushProcessor(new WebProcessor());

4. Форматировать вывод
Пример простого форматера:


use Monolog\Formatter\LineFormatter;
$formatter = new LineFormatter("[%datetime%] %channel%.%level_name%: %message% %context%\n");
$handler->setFormatter($formatter);


🎯 Совет на практике: заведите отдельные файлы логов под разные уровни важности (INFO, WARNING, ERROR), чтобы при поиске нужных записей достаточно было открыть один файл.

❓ А как вы организуете логи в своих проектах? Делитесь опытом в комментариях!

👉 @php_lib
  • 👍 5
  • ❤ 1
  • 👎 1
More from @php_lib
  1. Sep 24, 2026Сегодня хочу поговорить о теме, которая часто мешает PHP-разработчикам писать красивый и у…
  2. Sep 21, 2026Совет по Laravel💡 Если вы хотите автоматически удалять старые записи, используйте трейт P…
  3. Sep 16, 2026Совет по Laravel💡 Знаете ли вы .... tap() = Tweak and Return 🪄 Да, в Laravel метод tap()…
  4. Sep 9, 2026Совет по Laravel💡 Знаете ли вы... В Laravel есть метод withProgressBar(), который позволя…
  5. Sep 7, 2026💡Совет по Laravel Определение языка пользователя Laravel использует компонент HttpFoundat…
  6. Aug 31, 2026💡Знал ли вы, что… Метод Number::abbreviate в Laravel преобразует сложные числа в удобочит…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →