raifucore/laravel-telegram-logger

Send logs to Telegram

Installs: 38

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/raifucore/laravel-telegram-logger

1.1.0 2025-08-26 09:51 UTC

This package is auto-updated.

Last update: 2025-09-26 09:57:12 UTC


README

Send logs to Telegram chat via Telegram bot

Install

composer require raifucore/laravel-telegram-logger

Publish config file and views

php artisan vendor:publish --provider "RaifuCore\TelegramLogger\ServiceProvider"

Define Telegram Token and ChatId (users telegram id) and set as environment parameters Add to .env

### TELEGRAM_LOGGER ##########################################################
TELEGRAM_LOGGER_ENABLE=true
TELEGRAM_LOGGER_BOT_TOKEN=7123456789:ABHo3qcH6G1wMi4VPc8xxZZ474UizrF5e6Dk
TELEGRAM_LOGGER_CHAT_ID=-1112223334445
TELEGRAM_LOGGER_MESSAGE_THREAD_ID=

Add to config/logging.php file new channel:

'telegram' => [
    'driver' => 'custom',
    'via'    => Logger\TelegramLogger::class,
    'level'  => 'debug',
]

If your default log channel is a stack, you can add it to the stack channel like this

'stack' => [
    'driver' => 'stack',
    'channels' => ['single', 'telegram'],
]

Or you can simply change the default log channel in the .env

LOG_CHANNEL=telegram

It is possible to create other blade templates and reference them in the TELEGRAM_LOGGER_TEMPLATE entry

Create bot

For using this package you need to create Telegram bot

  1. Go to @BotFather in the Telegram
  2. Send /newbot
  3. Set up name and bot-name for your bot.
  4. Get token and add it to your .env file (it is written above)
  5. Go to your bot and send /start message

Change log template at runtime

  1. Change config for template.
config(['telegram-logger.template'=>'laravel-telegram-logging::custom'])
  1. Use Log as usual.

Configuring a different chat id or token per channel

  1. Add chat_id or token to channels in config/logging.php. Overrides config('telegram.chat_id').
[
    'channels' => [
        [
            'company' => [
                'driver' => 'custom',
                'via' => TelegramLogger::class,
                'chat_id' => env('TELEGRAM_COMPANY_CHAT_ID'),
                'token' => env('TELEGRAM_COMPANY_BOT_TOKEN'),
                'level' => 'debug'
            ],

            'operations' => [
                'driver' => 'custom',
                'via' => TelegramLogger::class,
                'chat_id' => env('TELEGRAM_OPERATIONS_CHAT_ID'),
                'token' => env('TELEGRAM_OPERATIONS_BOT_TOKEN'),
                'level' => 'debug'
            ]
        ]
    ]
]
  1. Use Log as usual.

Lumen support

To make it work with Lumen, you need also run two steps:

  1. Place config/telegram-logger.php file with following code:
<?php

return [
    // Telegram logger bot token
    'token' => env('TELEGRAM_LOGGER_BOT_TOKEN'),

    // Telegram chat id
    'chat_id' => env('TELEGRAM_LOGGER_CHAT_ID'),
    
    // you can define your custom template for message
    // e.g: logging.template
    // 'template' => 'some your view path'
];
  1. Uncomment $app->withFacades(); and configure the file $app->configure('telegram-logger'); at bootstrap/app.php
  2. Place default Laravel/Lumen logging file to config/logging.php (to add new channel).

Proxy support

To use a proxy server, set the variable in the .env

TELEGRAM_LOGGER_PROXY=proxy_server.com:port