質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

8296閲覧

Laravel5.7でlaravel.logのSlack通知を行いたいが「Log [] is not defined」

nnahito

総合スコア2004

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2019/02/03 04:43

やりたいこと

Laravel5.7でlaravel.logのSlack通知を行いたい

参考

前準備で行ったこと

Laravel5.4を使っていたので、Laravel5.7までアップデートを行いました。
手順は、以下のQiitaのとおりにcompoer.jsonをいじってcomposer installを行いました。

Laravel5.6へのアップグレード

PHPやサーバなど

PHPのバージョンは7.2.10です。

php -v PHP 7.2.10 (cli) (built: Sep 13 2018 00:59:29) ( NTS MSVC15 (Visual C++ 2017) x86 ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

サーバは、php artisan serveで起動したもの

困っていること

Log::error('Slack Test - Error');というコードを仕込んだコントローラーを通ると、
下記のエラーがlaravel.logに出力される。

[2019-02-02 02:08:18] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at D:\project\vendor\laravel\framework\src\Illuminate\Log\LogManager.php:167) [stacktrace] (略) [2019-02-02 02:08:18] laravel.ERROR: Slack Test - Error

この原因がわからない。

行ったこと

まず、Laravel5.4→5.6へのアップデートを行いました。
Laravel5.6へのアップグレード

次に、このQiitaを参考に、LaravelのGitHubからlogging.phpを取得し、configフォルダ配下に設置。

.envファイルにSlackのWebhookを設定。

LOG_CHANNEL="test" LOG_SLACK_WEBHOOK_URL="https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

適当な既存コントローラーにLog::error('Slack Test - Error');を追加。
ページの表示を行うと、ページは表示されるが、laravel.logに以下のエラーが表示される。

[2019-02-02 02:08:18] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at D:\project\vendor\laravel\framework\src\Illuminate\Log\LogManager.php:167) [stacktrace] (略) [2019-02-02 02:08:18] laravel.ERROR: Slack Test - Error

Log::error('Slack Test - Error');は正常に動作しているが、Slack通知はされません。
この原因を探しているのですが、わからず……

ご存知の方がいらっしゃいましたら、ご教示いただけますと幸いです。
よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ログの送信先がチャンネル。singleslackなど。
stackだけは特別で複数のチャンネルに同時に送信。

なのでLOG_CHANNELはtestとか適当に設定していいものではなくチャンネルを指定する。

デフォルトはstack。slackチャンネルを増やす。

php

1 'stack' => [ 2 'driver' => 'stack', 3 'channels' => ['daily', 'slack'], 4 ],

さらにslackチャンネルはcritical以上の時しか送信されないので変えたいなら変更。

php

1 'slack' => [ 2 'driver' => 'slack', 3 'url' => env('LOG_SLACK_WEBHOOK_URL'), 4 'username' => 'Laravel Log', 5 'emoji' => ':boom:', 6 'level' => 'critical', 7 ],

ここまではデフォルト用の設定なので使用時にチャンネル指定でもいい。

Log::channel('slack')->

投稿2019/02/03 05:26

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nnahito

2019/02/03 09:20

ご回答有り難うございます! > ログの送信先がチャンネル。singleやslackなど。 > stackだけは特別で複数のチャンネルに同時に送信 なるほど、ここのチャンネルはスラック内のチャンネルという意味ではなかったのですね…… 確かに、「stack」にすると正常にSlackへ通知が飛びました。 この「single」や「slack」、「stack」などの意味は、どこに載っているのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問