theriddleofenigma / laravel-google-chat-log
提供将日志发送到Google Chat(Google Workspace之前称为GSuite)的选项。
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^5.3.3|^6.2.1|^7.0
- illuminate/support: ^10.0|^11.0
- monolog/monolog: ^3.0
README
♥ 使用 <love/> 制作,并且我爱 <code/>
Laravel Google Chat Log
从 Laravel/Lumen 提供将日志发送到Google Chat(Google Workspace之前称为GSuite)的选项。
安装
Composer install
composer require theriddleofenigma/laravel-google-chat-log
对于laravel 9.x或更低版本,请使用v1.x
composer require theriddleofenigma/laravel-google-chat-log:^1.3
将以下代码添加到您的laravel/lumen应用程序的config/logging.php
文件中的channels数组中。
'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, ],
您可以根据RFC 5424规范提供的八个日志级别进行选择:emergency
、alert
、critical
、error
、warning
、notice
、info
和debug
注意:请确保设置环境变量LOG_GOOGLE_CHAT_WEBHOOK_URL。其他所有LOG_GOOGLE_CHAT_NOTIFY_USER_ID都是可选的。在这里,您可以设置多个Google Chat webhook url作为逗号分隔的值作为环境变量LOG_GOOGLE_CHAT_WEBHOOK_URL的值。
注意:对于lumen,请确保在bootstrap/app.php中将$app->withFacades();
取消注释。
现在,您可以通过设置相应的USER_ID到环境变量LOG_GOOGLE_CHAT_NOTIFY_USER_ID_DEFAULT
,使用@mention
在错误日志中通知特定用户。在LOG_GOOGLE_CHAT_NOTIFY_USER_ID_DEFAULT
下映射的用户ID将通知所有日志级别。
为了获取USER_ID,在浏览器窗口中右键单击您想要通知的人的Google chat用户图标并选择“检查”。在div
元素下找到属性data_member_id,然后USER_ID可以在data-member-id="user/human/{USER_ID}>"
中找到。
为了像@all
一样通知所有用户,设置LOG_GOOGLE_CHAT_NOTIFY_USER_ID_DEFAULT=all
。您还可以将多个USER_ID设置为逗号分隔的值。为了在不同日志级别通知不同的用户,您可以在logging.php
文件中设置相应的环境变量。
现在,您可以通过传递一个闭包函数到GoogleChatHandler::$additionalLogs属性,向Google chat消息中添加自定义附加日志。
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()), ]; }; } }
许可
版权所有 © Kumaravel
Laravel Google Chat Log是开源软件,根据MIT许可证许可。