Laravel 5.6 - Slack으로 로깅 할 수 있게 되었기 때문에 혼잡하게 시도하십시오.

13558 단어 로그PHPlaravel5.6
Qiita 첫 포스트.
잡 of 잡으로 갑니다.


환경



OS
Windows

라라벨
5.6

PHP
7.2.4


필자는 xampp로 가고 있습니다.

Laravel에서 프로젝트 만들기


laravel new project우선 sakut과 laravel 명령으로 프로젝트를 만듭니다.

적절한 라우팅 결정



route/web.php

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Route::get('/info', 'LogController@info')->name('info');
Route::get('/debug', 'LogController@debug')->name('debug');
Route::get('/warning', 'LogController@warning')->name('warning');
Route::get('/error', 'LogController@error')->name('error');

잡담이지만, 이런 것입니다.
로깅이므로 개인적으로 자주 사용하고 있는 info, debug, warning, error 를 픽업했습니다.

LogController 만들기



어쨌든 간단하게 알기 쉽게하기 위해, 특히 아무런 비틀림도하지 않습니다.
/debug처럼 URL을 직접 치면 log가 나오도록 합니다.

app/Http/Controller/LogController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Log;
use App\Http\Controllers\Controller;

class LogController extends Controller
{
    public static function info()
    {
        Log::info('Slack Test - Info');

        return view('welcome');
    }

    public static function debug()
    {
        Log::debug('Slack Test - Debug');

        return view('welcome');
    }

    public static function warning()
    {
        Log::warning('Slack Test - Warning');

        return view('welcome');
    }

    public static function error()
    {
        Log::error('Slack Test - Error');

        return view('welcome');
    }   
}

Logging.php 설정



그런데, 우선 로그가 나오는 기구는 만들 수 있었습니다.
이것을 기본적으로 실행하면 Larave.log에 log.ERROR: Slack Test - Error 와 로그가 표시되는 하즈입니다.

Laravel5.6에서 추가 된 Logging.php를 다시 씁니다.

config/logging.php

<?php

use Monolog\Handler\StreamHandler;

return [
    'default' => env('LOG_CHANNEL', 'stack'),
    'channels' => [
        'stack' => [
            'driver' => 'stack',
            'name' => 'laravel_logging', // チャンネル名を入力
            'channels' => ['single', 'slack'], // slackを追加
        ],

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

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

        'slack' => [
            'driver' => 'slack',
            'url' => env('LOG_SLACK_WEBHOOK_URL'),
            'username' => 'Laravel Log',
            'emoji' => ':boom:',
            'level' => 'debug', // デフォルトはcriticalなのでdebugに修正
        ],

        'stderr' => [
            'driver' => 'monolog',
            'handler' => StreamHandler::class,
            'with' => [
                'stream' => 'php://stderr',
            ],
        ],

        'syslog' => [
            'driver' => 'syslog',
            'level' => 'debug',
        ],

        'errorlog' => [
            'driver' => 'errorlog',
            'level' => 'debug',
        ],
    ],

];

귀찮아서 다른 설정은 기본값입니다.

슬랙 측 설정



.env 파일에 LOG_SLACK_WEBHOOK_URL 를 설정해야 합니다.

우선 로그용 채널을 만듭니다.


그런 다음 imcoming webhook 앱과 연결합니다.
방금 만든 채널을 선택하고 추가


그러면 설정 화면으로 전환하므로 화면 하단의 Webhook URL을 복사하여 설정 저장해 둔다.


.env에 Webhook URL 작성



방금 복사한 Webhook URL을 .env 파일에 씁니다.LOG_SLACK_WEBHOOK_URL=https://hooks.slack.com/services/XXXXXXXXXXXX/XXXXXXXXXXXX/XXXXXXXXXXXXXXX

이것으로 끝입니다. 시도해 봅시다.


  • /info
  • /debug
  • /error
  • /warning

  • 제대로 예쁘게 할 수 있네요.
    의외로 slack로 로깅 나쁘지 않다고 생각했습니다. (제대로 로그 설계해 연속으로 나오지 않으면)

    뭔가 재미있을 것 같은 것이 있으면 다시 시도하고 쓰려고 생각합니다.

    좋은 웹페이지 즐겨찾기