ホームページ  >  記事  >  php教程  >  Laravelログの使い方を詳しく解説

Laravelログの使い方を詳しく解説

高洛峰
高洛峰オリジナル
2016-12-27 10:09:231504ブラウズ

この記事の例では、Laravel ログの使用方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:

ここで使用するLaravelのバージョンはまだ5.2です

ログは非常に重要です。ローカル開発ではデバッグ モードをオンにすることができますが、オンライン プロジェクトのログを表示するのが非常に簡単で効果的なデバッグ方法です。 Laravel は Monolog ログ ライブラリを統合して、さまざまな強力なログ プロセッサを提供します。

Laravel は、単一、毎日、syslog、およびエラーログのロギング方法をサポートしています。たとえば、単一のファイルを生成するのではなく、ログ ファイルを毎日生成したい場合は、構成ファイル config/app.php でログ値を次のように設定する必要があります:

'log' => 'daily'

システムのデフォルト構成は単一です

#config/app.php:111
'log' => env('APP_LOG', 'single'),

Laravelの仕組みを見てみましょう 設定ログ。

#vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:36
protected $bootstrappers = [
    'Illuminate\Foundation\Bootstrap\DetectEnvironment',
    'Illuminate\Foundation\Bootstrap\LoadConfiguration',
    'Illuminate\Foundation\Bootstrap\ConfigureLogging',
    'Illuminate\Foundation\Bootstrap\HandleExceptions',
    'Illuminate\Foundation\Bootstrap\RegisterFacades',
    'Illuminate\Foundation\Bootstrap\RegisterProviders',
    'Illuminate\Foundation\Bootstrap\BootProviders',
];
<?php
namespace Illuminate\Foundation\Bootstrap;
use Illuminate\Log\Writer;
use Monolog\Logger as Monolog;
use Illuminate\Contracts\Foundation\Application;
class ConfigureLogging
{
/**
 * Bootstrap the given application.
 *
 * @param \Illuminate\Contracts\Foundation\Application $app
 * @return void
 */
public function bootstrap(Application $app)
{
  $log = $this->registerLogger($app);
  // If a custom Monolog configurator has been registered for the application
  // we will call that, passing Monolog along. Otherwise, we will grab the
  // the configurations for the log system and use it for configuration.
  if ($app->hasMonologConfigurator()) {
    call_user_func(
      $app->getMonologConfigurator(), $log->getMonolog()
    );
  } else {
    $this->configureHandlers($app, $log);
  }
}

Monolog 設定をカスタマイズする場合は、if 条件を使用します。デフォルトは else です

protected function configureHandlers(Application $app, Writer $log)
{
    $method = &#39;configure&#39;.ucfirst($app[&#39;config&#39;][&#39;app.log&#39;]).&#39;Handler&#39;;
    $this->{$method}($app, $log);
}
/**
* Configure the Monolog handlers for the application.
*
* @param \Illuminate\Contracts\Foundation\Application $app
* @param \Illuminate\Log\Writer $log
* @return void
*/
protected function configureSingleHandler(Application $app, Writer $log)
{
     $log->useFiles(
       $app->storagePath().&#39;/logs/laravel.log&#39;, #存储文件
       $app->make(&#39;config&#39;)->get(&#39;app.log_level&#39;, &#39;debug&#39;) #存储级别
     );
}

ここでの useFiles メソッドは、シングル ファイル ログ ハンドラーを登録し、ストレージ ファイルとストレージ レベルを設定します。

ログ初期化時のログ処理登録方法は以下の4つです。

public function useFiles($path, $level = &#39;debug&#39;) #单一文件
public function useDailyFiles($path, $days = 0, $level = &#39;debug&#39;) #每日生成
public function useSyslog($name = &#39;laravel&#39;, $level = &#39;debug&#39;) #系统日志的方式
public function useErrorLog($level = &#39;debug&#39;, $messageType = ErrorLogHandler::OPERATING_SYSTEM) #等同于php的error_log方式

ログの初期化情報は基本的に上記の通りです。

ログ ファサードを使用して、ログ情報をログに書き込むことができます:

8 つのログ レベル: 緊急、アラート、クリティカル、エラー、警告、通知、情報、デバッグ。

Log::emergency($error);
Log::alert($error);
Log::critical($error);
Log::error($error);
Log::warning($error);
Log::notice($error);
Log::info($error);
Log::debug($error);

この記事が皆様のLaravelフレームワークをベースとしたPHPプログラム設計のお役に立てれば幸いです。

Laravel ログの使用方法の詳細な説明と関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。