PHPackages                             dmitrijkalugin/message-log - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. dmitrijkalugin/message-log

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

dmitrijkalugin/message-log
==========================

Laravel log handler that sends log messages to various messengers (Telegram, Slack, Discord)

v1.0.0(3mo ago)01↓90%MITPHPPHP ^8.1

Since Mar 26Pushed 3mo agoCompare

[ Source](https://github.com/DmiriiKalugin/laravel-log-alert)[ Packagist](https://packagist.org/packages/dmitrijkalugin/message-log)[ RSS](/packages/dmitrijkalugin-message-log/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (5)Versions (2)Used By (0)

MessageLog - Laravel Log to Messengers
======================================

[](#messagelog---laravel-log-to-messengers)

Laravel библиотека для автоматической отправки логов в мессенджеры (Telegram, Slack, Discord).

Возможности
-----------

[](#возможности)

- ✅ Отправка логов в Telegram, Slack, Discord
- ✅ Настраиваемые уровни логирования для каждого канала
- ✅ Асинхронная отправка через Laravel Queues
- ✅ Throttling для предотвращения спама
- ✅ Красивое форматирование сообщений
- ✅ Легко расширяемая архитектура

Установка
---------

[](#установка)

### 1. Установка через Composer

[](#1-установка-через-composer)

```
composer require dmitrijkalugin/message-log
```

### 2. Публикация конфигурации

[](#2-публикация-конфигурации)

```
php artisan vendor:publish --tag=messagelog-config
```

Это создаст файл `config/messagelog.php` с настройками.

Настройка
---------

[](#настройка)

### 1. Добавьте переменные в `.env`

[](#1-добавьте-переменные-в-env)

#### Для Telegram:

[](#для-telegram)

```
TELEGRAM_ENABLED=true
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_CHAT_ID=your_chat_id_here
```

#### Для Slack:

[](#для-slack)

```
SLACK_ENABLED=true
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK/URL
SLACK_CHANNEL=#logs
SLACK_USERNAME="Laravel Logger"
```

#### Для Discord:

[](#для-discord)

```
DISCORD_ENABLED=true
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR/WEBHOOK/URL
DISCORD_USERNAME="Laravel Logger"
```

### 2. Настройте logging channel в `config/logging.php`

[](#2-настройте-logging-channel-в-configloggingphp)

```
'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['single', 'messagelog'],
        'ignore_exceptions' => false,
    ],

    'messagelog' => [
        'driver' => 'monolog',
        'handler' => \MessageLog\MessageLogHandler::class,
        'level' => env('LOG_LEVEL', 'error'),
    ],

    // ... другие каналы
],
```

### 3. Настройте уровни логирования

[](#3-настройте-уровни-логирования)

В `config/messagelog.php` можно настроить, какие уровни логов отправлять в каждый мессенджер:

```
'channels' => [
    'telegram' => [
        'enabled' => true,
        'levels' => ['emergency', 'alert', 'critical', 'error'],
    ],
],
```

Доступные уровни: `emergency`, `alert`, `critical`, `error`, `warning`, `notice`, `info`, `debug`

Использование
-------------

[](#использование)

После настройки библиотека автоматически будет отправлять логи:

```
// Эти логи автоматически отправятся в настроенные мессенджеры
Log::error('Произошла ошибка', ['user_id' => 123]);
Log::critical('Критическая ошибка системы!');
Log::emergency('Система недоступна!');

// С контекстом
Log::error('Ошибка оплаты', [
    'order_id' => 12345,
    'amount' => 1000,
    'error' => 'Payment gateway timeout'
]);
```

Дополнительные настройки
------------------------

[](#дополнительные-настройки)

### Асинхронная отправка

[](#асинхронная-отправка)

Включите в `.env`:

```
MESSAGELOG_ASYNC=true
```

При этом сообщения будут отправляться через Laravel Queue. Убедитесь, что у вас настроен queue worker:

```
php artisan queue:work
```

### Throttling (ограничение частоты)

[](#throttling-ограничение-частоты)

По умолчанию включен throttling, чтобы избежать спама одинаковыми ошибками:

```
MESSAGELOG_THROTTLE_ENABLED=true
MESSAGELOG_THROTTLE_LIMIT=5          # Максимум 5 одинаковых сообщений
MESSAGELOG_THROTTLE_MINUTES=5        # В течение 5 минут
```

Получение токенов и webhook URL
-------------------------------

[](#получение-токенов-и-webhook-url)

### Telegram

[](#telegram)

1. Найдите [@BotFather](https://t.me/BotFather) в Telegram
2. Отправьте `/newbot` и следуйте инструкциям
3. Скопируйте токен бота
4. Добавьте бота в группу или получите свой chat\_id через [@userinfobot](https://t.me/userinfobot)

### Slack

[](#slack)

1. Перейдите в [Slack API](https://api.slack.com/apps)
2. Создайте новое приложение
3. Включите "Incoming Webhooks"
4. Создайте новый webhook для нужного канала
5. Скопируйте Webhook URL

### Discord

[](#discord)

1. Откройте настройки канала в Discord
2. Перейдите в "Integrations" → "Webhooks"
3. Создайте новый webhook
4. Скопируйте Webhook URL

Расширение функциональности
---------------------------

[](#расширение-функциональности)

### Добавление нового мессенджера

[](#добавление-нового-мессенджера)

Создайте новый класс, реализующий `HandlerInterface`:

```
namespace MessageLog\Handlers;

class CustomHandler extends AbstractHandler
{
    public function send(string $level, string $message, array $context = []): bool
    {
        // Ваша реализация
    }
}
```

Затем зарегистрируйте его в `MessageLogHandler::initializeHandlers()`.

Требования
----------

[](#требования)

- PHP &gt;= 8.1
- Laravel &gt;= 10.0
- Guzzle HTTP &gt;= 7.0

Лицензия
--------

[](#лицензия)

MIT License

Автор
-----

[](#автор)

Dmitrij Kalugin

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance82

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

91d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/40687176?v=4)[DmiriiKalugin](/maintainers/DmiriiKalugin)[@DmiriiKalugin](https://github.com/DmiriiKalugin)

---

Tags

laravelloggingnotificationsslacktelegramMessengerdiscord

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/dmitrijkalugin-message-log/health.svg)

```
[![Health](https://phpackages.com/badges/dmitrijkalugin-message-log/health.svg)](https://phpackages.com/packages/dmitrijkalugin-message-log)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M2.9k](/packages/craftcms-cms)[spatie/laravel-health

Monitor the health of a Laravel application

87411.3M153](/packages/spatie-laravel-health)[marvinlabs/laravel-discord-logger

Logging to a discord channel in Laravel

2101.2M2](/packages/marvinlabs-laravel-discord-logger)[tempest/framework

The PHP framework that gets out of your way.

2.2k31.1k12](/packages/tempest-framework)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
