https://github.com/theriddleofenigma/laravel-google-chat-log
Brings up the option for sending the logs to google chat [Google Workplace formerly called GSuite].
https://github.com/theriddleofenigma/laravel-google-chat-log
error-logging google-chat gsuite laravel laravel-logs logs lumen
Last synced: 2 months ago
JSON representation
Brings up the option for sending the logs to google chat [Google Workplace formerly called GSuite].
- Host: GitHub
- URL: https://github.com/theriddleofenigma/laravel-google-chat-log
- Owner: theriddleofenigma
- License: mit
- Created: 2021-02-21T06:59:18.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-01-27T11:10:02.000Z (over 1 year ago)
- Last Synced: 2025-03-13T22:06:09.242Z (2 months ago)
- Topics: error-logging, google-chat, gsuite, laravel, laravel-logs, logs, lumen
- Language: PHP
- Homepage: https://theriddleofenigma.github.io/laravel-google-chat-log/
- Size: 41 KB
- Stars: 22
- Watchers: 3
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
♥ Made with <love/> And I love <code/>
# Laravel Google Chat Log
Brings up the option for sending the logs to google chat [Google Workspace formerly called GSuite] from [Laravel](https://laravel.com)/[Lumen](https://lumen.laravel.com).
## Installation
### Composer install
```shell
composer require theriddleofenigma/laravel-google-chat-log
```For laravel 9.x or lower, please use v1.x
```shell
composer require theriddleofenigma/laravel-google-chat-log:^1.3
```Add the following code to the channels array in `config/logging.php` in your laravel/lumen application.
```php
'google-chat' => [
'driver' => 'monolog',
'url' => env('LOG_GOOGLE_CHAT_WEBHOOK_URL'),
'notify_users' => [
'default' => env('LOG_GOOGLE_CHAT_NOTIFY_USER_ID_DEFAULT'),
'emergency' => env('LOG_GOOGLE_CHAT_NOTIFY_USER_ID_EMERGENCY'),
'alert' => env('LOG_GOOGLE_CHAT_NOTIFY_USER_ID_ALERT'),
'critical' => env('LOG_GOOGLE_CHAT_NOTIFY_USER_ID_CRITICAL'),
'error' => env('LOG_GOOGLE_CHAT_NOTIFY_USER_ID_ERROR'),
'warning' => env('LOG_GOOGLE_CHAT_NOTIFY_USER_ID_WARNING'),
'notice' => env('LOG_GOOGLE_CHAT_NOTIFY_USER_ID_NOTICE'),
'info' => env('LOG_GOOGLE_CHAT_NOTIFY_USER_ID_INFO'),
'debug' => env('LOG_GOOGLE_CHAT_NOTIFY_USER_ID_DEBUG'),
],
'level' => env('LOG_LEVEL', 'debug'),
'handler' => \Enigma\GoogleChatHandler::class,
],
```You can provide the eight logging levels defined in the [RFC 5424 specification](https://tools.ietf.org/html/rfc5424): `emergency`, `alert`, `critical`, `error`, `warning`, `notice`, `info`, and `debug`
Note*: Make sure to set the LOG_GOOGLE_CHAT_WEBHOOK_URL env variable.
And all other LOG_GOOGLE_CHAT_NOTIFY_USER_ID are optional.
Here, you can set multiple google chat webhook url as comma separated value for the LOG_GOOGLE_CHAT_WEBHOOK_URL env variable.Note*: For lumen, make sure the `$app->withFacades();` is uncommented in the bootstrap/app.php.
Now, you can notify a specific user with `@mention` in the error log by setting the corresponding USER_ID to the `LOG_GOOGLE_CHAT_NOTIFY_USER_ID_DEFAULT` env variable. User Ids mapped under `LOG_GOOGLE_CHAT_NOTIFY_USER_ID_DEFAULT` will be notified for all log levels.
For getting the USER_ID, right-click the user-icon of the person whom you want to notify in the Google chat from your browser window and select inspect. Under the `div` element find the attribute data_member_id, then the USER_ID can be found as `data-member-id="user/human/{USER_ID}>"`.
In order to notify all the users like `@all`, Set ```LOG_GOOGLE_CHAT_NOTIFY_USER_ID_DEFAULT=all```. Also, you can set multiple USER_IDs as comma separated value.
In order to notify different users for different log levels, you can set the corresponding env keys mentioned to configure in the `logging.php` file.Now, you can add custom additional logs to the Google chat message by passing a closure function to the GoogleChatHandler::$additionalLogs property.
```php
use Enigma\GoogleChatHandler;
use Illuminate\Http\Request;class AppServiceProvider {
public function register() {}
public function boot() {
GoogleChatHandler::$additionalLogs = function () {
return [
'tenant' => request()->user()?->tenant->name,
'request' => json_encode(request()->toArray()),
];
};
}
}
```## License
Copyright © Kumaravel
Laravel Google Chat Log is open-sourced software licensed under the [MIT license](LICENSE).