theriddleofenigma/laravel-google-chat-log

提供将日志发送到Google Chat(Google Workspace之前称为GSuite)的选项。

v2.0.0 2024-01-27 11:07 UTC

This package is auto-updated.

Last update: 2024-09-27 12:32:22 UTC


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规范提供的八个日志级别进行选择:emergencyalertcriticalerrorwarningnoticeinfodebug

注意:请确保设置环境变量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许可证许可。