gboquizosanchez / google-chat-channel
Laravel package to send logs to Google Chat
Package info
github.com/gboquizosanchez/google-chat-channel
pkg:composer/gboquizosanchez/google-chat-channel
Requires
- php: ^8.3|^8.4
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^11.0|^12.0
- monolog/monolog: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- larastan/larastan: ^2.9
- orchestra/testbench: ^9.1
- pestphp/pest: ^3.5
README
gboquizosanchez/google-chat-channel
Laravel logging channel for Google Chat
Get instant alerts in Google Chat when your Laravel app logs an error. No setup beyond a webhook URL.
Overview
A lightweight Laravel logging channel that sends log entries directly to a Google Chat space via webhooks. Messages are formatted as rich cards with emojis based on log level โ so your team can triage errors at a glance without leaving Chat.
โจ Features
- ๐ Real-time delivery โ Log entries sent instantly to your Google Chat space
- ๐ฑ Rich formatting โ Cards with emojis and severity based on log level
- โ๏ธ Env-based config โ No config file to publish, just
.envvariables - ๐ง Context & exceptions โ Optionally include extra context and exception details
- ๐ Smart retries โ Built-in error handling for webhook failures
- ๐ Queue support โ Optionally queue log dispatch to avoid blocking requests
๐ฆ Installation
composer require gboquizosanchez/google-chat-channel
โ๏ธ Configuration
Add the channel to your config/logging.php:
'channels' => [ 'google-chat' => [ 'driver' => 'custom', 'via' => \Boquizo\GoogleChatChannel\GoogleChatLogger::class, ], 'stack' => [ 'driver' => 'stack', 'channels' => ['single', 'google-chat'], ], ],
Then set your webhook URL in .env:
GOOGLE_CHAT_WEBHOOK_URL=https://chat.googleapis.com/v1/spaces/XXX/messages?key=YYY&token=ZZZ
To get a webhook URL, open a Google Chat space โ Manage webhooks โ Add webhook.
Available environment variables
| Variable | Default | Description |
|---|---|---|
GOOGLE_CHAT_WEBHOOK_URL |
โ | Required. Google Chat incoming webhook URL |
GOOGLE_CHAT_LOG_LEVEL |
error |
Minimum log level to forward (debug, info, warning, error, ...) |
GOOGLE_CHAT_IGNORE_CONTEXTS |
true |
Exclude context data from the message |
GOOGLE_CHAT_IGNORE_EXCEPTIONS |
true |
Exclude exception details from the message |
GOOGLE_CHAT_QUEUED |
false |
Queue log dispatch instead of sending synchronously |
๐ Usage
Once configured, use Laravel's standard logging โ no changes needed in your code:
// Sent to Google Chat (at or above your configured level) Log::error('Payment failed', ['order_id' => 1234]); Log::critical('Database connection lost'); // Not sent if GOOGLE_CHAT_LOG_LEVEL=error Log::info('User logged in');
Each message arrives in Chat as a formatted card showing the level, message, and optionally context or exception details.
Contributing
Contributions are welcome!
- ๐ Report bugs via GitHub Issues
- ๐ก Suggest features or improvements
- ๐ง Submit pull requests with fixes or enhancements
Credits
- Author: Germรกn Boquizo Sรกnchez
- Contributors: View all contributors
๐ License
This package is open-source software licensed under the MIT License.