LaravelでのLoggingの使い方とは?基本的な使い方やログについて紹介!
- システム
エンジニア - Loggingの使い方が知りたいです。
- プロジェクト
マネージャー - Loggingの基本的な使い方や種類など詳しく見ていきましょう。
LaravelでのLoggingの使い方とは?
今回は、LaravelでのLoggingの使い方について説明します。
ここでは、
・基本的な使い方
・ログの種類
・ログレベル
・画面入力内容のログ出力
・一覧画面のログ出力
について紹介します。
LaravelでのLoggingの使い方に興味のある方はぜひご覧ください。
基本的な使い方
LaravelでのLoggingの基本的な使い方を紹介します。
事前にLaravelアプリを作成しておいてください。
ここでは、Controllerにログを追加してみます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
|
public function index()
{
$myUser = MyUser::all();
\Log::info('This is info Logging.'); // ログ出力
return view('myusers', ['myusers' => $myUser]);
}
|
Laravelのログはstorage/logs/laravel.logに出力されます。
以下のコマンドを実行して、ログを監視してください。
1
|
$ tail -f storage/logs/laravel.log
|
indexが呼び出されるURLにアクセスすると、以下のようなログが出力されます。
1
|
[2020-11-30 13:14:41] local.INFO: This is info Logging.
|
ログの種類
Laravelでのログの種類を紹介します。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public function index()
{
$myUser = MyUser::all();
\Log::debug('This is debug Logging.');
\Log::info('This is info Logging.');
\Log::notice('This is notice Logging.');
\Log::warning('This is warning Logging.');
\Log::error('This is error Logging.');
\Log::critical('This is critical Logging.');
\Log::alert('This is alert Logging.');
\Log::emergency('This is emergency Logging.');
return view('myusers', ['myusers' => $myUser]);
}
|
実行すると、以下のようなログが出力されます。debugのログレベルが一番低く、emergencyのログレベルが一番高いです。
1
2
3
4
5
6
7
8
|
[2020-11-30 13:19:59] local.DEBUG: This is debug Logging.
[2020-11-30 13:19:59] local.INFO: This is info Logging.
[2020-11-30 13:19:59] local.NOTICE: This is notice Logging.
[2020-11-30 13:19:59] local.WARNING: This is warning Logging.
[2020-11-30 13:19:59] local.ERROR: This is error Logging.
[2020-11-30 13:19:59] local.CRITICAL: This is critical Logging.
[2020-11-30 13:19:59] local.ALERT: This is alert Logging.
[2020-11-30 13:19:59] local.EMERGENCY: This is emergency Logging.
|
「use Illuminate\Support\Facades\Log;」を記述すると、\Logの\の部分を削除して記述できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
use Illuminate\Support\Facades\Log;
:
(中略)
:
public function index()
{
$myUser = MyUser::all();
Log::debug('This is debug Logging.');
Log::info('This is info Logging.');
Log::notice('This is notice Logging.');
Log::warning('This is warning Logging.');
Log::error('This is error Logging.');
Log::critical('This is critical Logging.');
Log::alert('This is alert Logging.');
Log::emergency('This is emergency Logging.');
return view('myusers', ['myusers' => $myUser]);
}
|
このようにLaravelでは、8種類のログレベルのログを出力できます。
ログレベル
Laravelでのログレベルを設定する方法を紹介します。
実際のソースコードを見てみましょう。
.envファイルのLOG_LEVELの部分を修正します。修正前はログレベルはdebugになっています。
1
2
|
LOG_CHANNEL=stack
LOG_LEVEL=debug
|
これをerrorに変更して、再実行してみましょう。
1
2
|
LOG_CHANNEL=stack
LOG_LEVEL=error
|
実行すると、以下のようなログが出力されます。error以上のログレベルのログが出力されることが分かります。
1
2
3
4
|
[2020-11-30 13:40:42] local.ERROR: This is error Logging.
[2020-11-30 13:40:42] local.CRITICAL: This is critical Logging.
[2020-11-30 13:40:42] local.ALERT: This is alert Logging.
[2020-11-30 13:40:42] local.EMERGENCY: This is emergency Logging.
|
このようにLaravelでは、ログレベルを設定できます。
画面入力内容のログ出力
Laravelで画面に入力された内容をログ出力する方法を紹介します。
実際のソースコードを見てみましょう。Controllerのstoreメソッドにログを入れます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public function store(Request $request)
{
$myUser = new MyUser;
$myUser->name = request('name');
$myUser->age = request('age');
$myUser->email = request('email');
$myUser->save();
Log::info('post name:'.request('name').
' age:'.request('age').
' email:'.request('email'));
return redirect('/myusers');
}
|
実行すると、以下のようなログが出力されます。
1
|
[2020-11-30 13:48:59] local.INFO: post name:jiro age:25 email:jiro@gmail.com
|
一覧画面のログ出力
Laravelで一覧画面に表示された内容をログ出力する方法を紹介します。
ここでは、DBの中身は以下の状態であるとします。
1
2
3
4
5
6
7
8
9
10
11
|
mysql> select id,name,age,email from my_users;
+----+--------+-----+--------------------+
| id | name | age | email |
+----+--------+-----+--------------------+
| 1 | ichiro | 20 | ichiro@yahoo.co.jp |
| 2 | jiro | 25 | jiro@gmail.com |
| 3 | saburo | 30 | saburo@yahoo.co.jp |
+----+--------+-----+--------------------+
3 rows in set (0.00 sec)
mysql>
|
実際のソースコードを見てみましょう。Controllerのindexメソッドにログを入れます。
1
2
3
4
5
6
7
8
9
10
11
|
public function index()
{
$myUser = MyUser::all();
foreach ($myUser as $oneUser) {
Log::info('id:'.$oneUser->id.
' name:'.$oneUser->name.
' age:'.$oneUser->age.
' email:'.$oneUser->email);
}
return view('myusers', ['myusers' => $myUser]);
}
|
実行すると、以下のようなログが出力されます。
1
2
3
|
[2020-11-30 14:03:02] local.INFO: id:1 name:ichiro age:20 email:ichiro@yahoo.co.jp
[2020-11-30 14:03:02] local.INFO: id:2 name:jiro age:25 email:jiro@gmail.com
[2020-11-30 14:03:02] local.INFO: id:3 name:saburo age:30 email:saburo@yahoo.co.jp
|
- システム
エンジニア - このように簡単にログレベルのログを出力できるのですね。
- プロジェクト
マネージャー - 実際に自分でコードを書いてLoggingを覚えていきましょう。
まとめ
いかがでしたでしょうか。
ここまで、LaravelでのLoggingの使い方についてご説明してきました。Laravelでは、様々なログレベルのログを簡単に出力できます。
ぜひご自身でLaravelのソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)