Search code examples
laravelslacklaravel-7

Integration laravel 7 log to slack


I tried to integration error log laravel to slack notification. But when i tested to send log it can't send massage to slack. I followed this tutorial https://panjeh.medium.com/send-laravel-6-log-to-slack-notification-573a6d95a14e. And I've tested on route too

Here is it the config.php

'channels' => [
        'stack' => [
            'driver' => 'stack',
            'channels' => ['single','slack'],
            'ignore_exceptions' => false,
        ],

        'single' => [
            'driver' => 'single',
            'path' => storage_path('logs/laravel.log'),
            'level' => 'debug',
        ],

        'daily' => [
            'driver' => 'daily',
            'path' => storage_path('logs/laravel.log'),
            'level' => 'debug',
            'days' => 14,
        ],

        'slack' => [
            'driver' => 'slack',
            'url' => env('LOG_SLACK_WEBHOOK_URL'),
            'username' => 'Laravel Log',
            'emoji' => ':boom:',
            'level' => 'warning',
        ],

Here is it the route to test

Route::get('slack', function() {
    Log::error('Test');
    return 'Slack notif';
});

I've got the url too and have it put in .env LOG_SLACK_WEBHOOK_URL=


Solution

  • You can change default log channels to slack.So you have to set

    LOG_CHANNEL=stack 
    

    Also you can specify channels. Instead of changing channels

    Log::channel('slack')->inf("test");
    

    or you can do

    Log::stack(['daily', 'slack'])->info("test");
    

    or you can specify channels inside daily array.So that no need to change anythink

     'stack' => [
            'driver' => 'stack',
            'channels' => ['daily', 'slack'],
            'ignore_exceptions' => false,
        ],