How To Send Application Logs To Telegram In Laravel
Streamlining Error Monitoring: Integrating Laravel Application Logs with Telegram
Table of contents
How To Send Application Logs To Telegram Channel In Laravel
Hello Web Artisans,
Today's article will explore how to send application logs to a Telegram Channel using Laravel. But first, let's delve into the significance of logs in software development and why they're crucial for our work.
Logging is an important aspect of SD because it helps the developers to understand why and where these errors or execution happening in the Application.
Logger and Logger Types in Laravel
Laravel Logger - This logger functionality works with different types of channel specification information.
Laravel Logger Types - The List of Error Types and Functions
Logger Type | Logger Function |
Debug: Used for detailed debug information | Log::debug("this is debug logger"); |
Info: Used to log informational messages | Log::info('This is an informational message.'); |
Notice: Used for normal but significant events | Log::notice('This is a notice message.'); |
Warning: Used to indicate something unexpected that is not necessarily an error | Log::warning('This is a warning message.'); |
Error: Used to record error events that might still allow the application to continue running. | Log::error('This is an error message.'); |
Critical: Used for critical conditions, like serious errors that cause major disruptions. | Log::critical('This is a critical message.'); |
Alert: Used to indicate that immediate action is required. | Log::alert('This is an alert message.'); |
Emergency: Used to log system is unusable situations. | Log::emergency('This is an emergency message.'); |
The accepted parameters in Laravel Logger Functions:
message (string) - The information about the logger types.
context(array) - The message bind parameters in the logger.
Create a Telegram Bot and Make An Admin in a Channel
The List Of Steps to create a telegram bot and make an admin channel
Connect with Telegram Bot Father to create a Telegram Bot - Search in the Telegram App To Find.
Select start command and create the bot.
Select newbot command and give the name of the bot.
Then set the username that ends with _bot.
Get the Access Token for Future Use.
Navigate to Profile and Click Create Channel
Set The Channel Name, Description and Profile Pic(Optional)
Click the create button and make the channel if public or private.
Add the bot as member and make an admin
In the channel Text the message "Hi".
Integrate and Send Application Logs to Telegram
Telegram Bot Configuration In Laravel Application Logging
In this section, we will walk through the process of setting up and integrating a Telegram bot for logging in a Laravel application, detailing each step along the way.
Add the Environment variables in .env .
#.env TELEGRAM_API_KEY=Telegram-Access-Key TELEGRAM_CHANNEL=Channel-Id
Add the Logger Classes on top and Channel Configuration in logging.php .
# config\logging.php <?php use Monolog\Handler\FilterHandler; use Monolog\Handler\TelegramBotHandler;
# config\logging.php <?php 'stack' => [ 'driver' => 'stack', 'channels' => ['single','telegram'], 'ignore_exceptions' => false, ], #end of the array - add this channel "telegram" => [ 'driver' => 'monolog', 'handler' => FilterHandler::class, 'level' => env('LOG_LEVEL', 'debug'), 'with' => [ 'handler' => new TelegramBotHandler($apiKey = env('TELEGRAM_API_KEY'), $channel = env('TELEGRAM_CHANNEL')) ] ],
If Specific type of logger message only need set the
level => logger_type
Better Understanding go through this commit changes 🔽 Click the Below Link
Place the Telegram API Key and the Telegram Channel identifiers in the
.env
file.We have already obtained the Laravel API Key from the Bot Father Channel, which is now set in the
.env
file.The parameter for the Telegram channel can take either a string or an integer as its value.
if the channel is public set the value as channel username
TELEGRAM_API_KEY=Telegram-Access-Key TELEGRAM_CHANNEL=@laravel_app_logger
If the channel is private get the channel id from the Telegram
GetUpdates
API URL.#https://api.telegram.org/bot{TELEGRAM_API_KEY}/getUpdates
{TELEGRAM_API_KEY} -In this place add the API key and open the URL new tab in the browser.
In the new tab get the channel id in the JSON with Bot Integrated Channel
"chat": { "id": "channel_id", "title": "Laravel-APP-Logger", "type": "channel" }
💡NOTE:Before hit this endpoint send the
"hi"
message in the channel and get the channel idIf the channel id is starts with minus it is private. if it is without minus it is public or use username
set the channel id in the
.env
#IF public-channel TELEGRAM_CHANNEL=@laravel_app_logger #OR TELEGRAM_CHANNEL=12345678 #IF PRIVATE CHANNEL TELEGRAM_CHANNEL=-12345678
Now we are ready to share the logs in telegram channel.
<?php
use Illuminate\Support\Facades\Log;
Log::error("error");
Log::debug("debug");
- Tinker-Extension - Let's start running tinker in Visual Studio Code.
Laravel Logging - https://laravel.com/docs/10.x/logging
Explore Telegram Bot API's - https://core.telegram.org/bots/api#chat
Send a Telegram Message using Custom Helper Function
The above Methods send telegram notification to application logs in the channel.
If you are planning to send other kind of notification in the channel use this helper function in for jobs , events and others.
if multiple channels use this function to send message based on chat id and bot token.
keep it safe the bot token and chat id for channel if it possible use encrypt and decrypt to processing the request.
In conclusion, integrating Telegram with your Laravel application for sending logs is a powerful way to monitor your application’s health and activity in real-time. By leveraging the simplicity and effectiveness of Telegram bots, you can keep a close eye on your application's behavior, receive instant notifications of issues, and maintain a high level of operational awareness.
I hope this article is helpful to all of you. follow and support 💜💜💜💰