ファイルではありません:Laravelログはラインを示すと、私は次のようにログインしてい
[2016-09-09 00:02:03] local.DEBUG: test
がどのように行を書き込むようにログを構成できます。これはファイルの行がある
をLog::debug("test");
ファイル?
ありがとうございました
ファイルではありません:Laravelログはラインを示すと、私は次のようにログインしてい
[2016-09-09 00:02:03] local.DEBUG: test
がどのように行を書き込むようにログを構成できます。これはファイルの行がある
をLog::debug("test");
ファイル?
ありがとうございました
実際に多くのことを行うようにLaravelロガーを設定することができます。私は前にそれをやった、とあなたのケースでは、このようなものになるだろう:
app('log')->getMonolog()->pushProcessor(function ($record) {
if (array_get($record, 'level_name') === 'DEBUG') {
// ...
}
return $record;
});
メインキャッチです:あなたは、PHPで一貫して取得することは事実上不可能である情報、すなわちファイルを追加しようとしていると行には、ロギング機能を起動したコードが含まれています。あなたのケースではFacadeを使用してメソッドを呼び出しています。これはLaravelのログライターに解決され、次にMonologパッケージを呼び出し、プロセッサを起動します(これはClosureです)。あなたの道を辿ることを試みるのは、馬鹿なことです。
1)単純に状態ファイルと行のロギング、context
としてログライターに渡す:
Log::debug('My debug message', ['file' => __FILE__, 'line' => __LINE__]);
だから、私はそれを参照してください方法は、あなたは簡単にこれを行うには2つのオプションがあります2)おそらくあなたが知っているように、あなたのLaravelログにファイルと行の情報がある理由は、ロガー自体とは関係がありません。PHP例外の組み込みの__toString
メソッドがスタックトレースと共に出力されます。私たちが望むものを達成するためにそれを利用できるのであれば、どうしたらよいでしょうか?
Log::debug(new DebugInfo('My debug message'));
をそして、あなたのログは次のようになります:
<?php
class DebugInfo extends \Exception
{
public function __toString()
{
return 'Debug info "'.$this->getMessage().'" on file '.$this->getFile().':'.$this->getLine();
}
}
そのように、あなたは、単に書くことができ、あなたがメッセージを送信するために探しているなら、サイドノートとして
[2016-09-09 09:21:29] local.DEBUG: Debug info "My debug message" on file /Users/tomasbuteler/Sites/frulact-presentations/app/Http/Controllers/PresentationController.php:15
、デバッグの目的で自分自身に、私はLaravel DebugBar packageを試してみることをお勧めします。
手動でデータをログするので、ファイル名と行を自分で書くことができますか? – PeterPan666