前提
Laravel9
Laravel9でシステムを作成しています。
今まで不勉強だったのでLogはDailyにしただけで特別な事はしていませんでしたが、システムが大きくなるにつれてLogが肥大化していくのでいよいよカスタムしてせめて機能別に書き出ししようと思いました。
現状
現状、チャンネルを機能別に作成して書き出せる事自体はコードが正解かはともかく、下記手順で実現できています。
config/logging.php
にログを吐き出したい機能別にチャンネルを作成
コントローラーのコード内でLog::channel('original-channel')->info('test');
の様な感じでログ自体は想定通りに取れています。
実現したいこと
今まではLog::info('ログ');
の少量で書けていたわけです。
そこで毎回channel("original-channel")
を書かずに最初に宣言したらその後はそこに書かれるように出来ないかと思いました。
そこでネットを探してみて下記コードを見つけたのですが(変更していますが基本はそのままです)
$log = Log::channel('original-channel')->getLogger(); $log->info("TEST LOG");
実行してみると。$logオブジェクト?自体はMonolog\Logger Object
が作成できているようですが$log->info("TEST")
も$log::info("TEST");
も通らない状況です。
発生しているエラーメッセージ
上記のコードでは下記のエラーが発生しています。
Non-static method Monolog\Logger::info()
考え
staticが云々というかそもそもgetLogger()
で作成したオブジェクトMonolog\Logger
が間違えているのか?という気はします。
マニュアルのログページの下の方に少し「ファクトリによるカスタムチャンネルの生成」というのに触れていますがこれが正解かもわからないので保留して質問しました。
よろしくお願いいたします。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。