<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # 簡介 Laravel的日志模塊位于Illuminate/Log文件夾下;通過封裝Monolog插件提供日志服務; # 配置 ## 配置文件 在config/app.php文件中關于日志模塊的配置項有兩個,分別如下: ~~~ // 日志模式,可選擇參數有 "single", "daily", "syslog", "errorlog" 'log' => env('APP_LOG', 'single'), // 錯誤等級,為 "RFC 5424" 中定義的八種日志級 'log_level' => env('APP_LOG_LEVEL', 'debug'), ~~~ 1. 日志模式不同的參數值有不同的含義: * single 所有日志信息都會輸出到storage/log/laravel.log文件中 * daily 每天的日志信息都會輸出到storage/log文件夾下的日志文件中,日志文件名會包含當天的年月日信息; * syslog 日志信息輸出到系統的日志文件中;比如,筆者是centos系統,日志信息寫到了/var/log/message文件中 * errorlog 相當于調用PHP的error_ 設定日志文件的最大數量 使用 daily 日志模式時,默認 Laravel 只會保存最近 5 日的日志文件。如果要調整,要在 config/app.php 再添加個 log_max_files 字段指定即可: ~~~ 'log_max_files' => 30 ~~~ 2. 八種日志錯誤等級分別為: ![](https://box.kancloud.cn/2241f272d121b1d037e1205efc47ff7d_1602x586.jpg) 如果log_level的值為critical, 則日志只會輸出alert和emergency這兩種錯誤等級的信息; ## 自定義配置 如果你想要在應用中完全控制Monolog的配置,可以使用應用的configureMonologUsing方法; 在bootstrap/app.php文件返回$app變量之前調用該方法; 比如,使用daily日志模式,但日志文件名想自定義,可以如下: ~~~ $app->configureMonologUsing(function(Monolog\Logger $log) { $filename = storage_path('/logs/' . php_sapi_name() . '.log'); $handler = new Monolog\Handler\RotatingFileHandler($filename, 0, \Monolog\Logger::DEBUG, true, 0664); $handler->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, true, true)); $log->pushHandler($handler); }); ~~~ # 使用 ## 日志記錄 1. 創建日志器實例 直接創建`Writer`實例,日志器實例還需要設置日志模式與錯誤等級; ~~~ $writer = new Illuminate\Log\Writer(new Monolog\Logger('channel_name')); $writer->useErrorLog('info'); ~~~ ~~~ 或者通過全局幫助函數,從服務容器獲取實例;日志模式與錯誤等級已按照配置文件中的參數設置好了; $writer = app('log'); ~~~ ~~~ 還有一種直接通過門面模式`\Log`;比如要輸出`debug`級信息,執行`\Log::debug('xxxx'); ` ~~~ 2. 輸出各種類型信息 ~~~ $writer->emergency('消息內容', ['上下文環境,比如用戶ID' => '這里顯示用戶ID的值,比如78']); $writer->alert('消息內容'); $writer->critical('消息內容'); $writer->error('消息內容'); $writer->warning('消息內容'); $writer->notice('消息內容'); $writer->info('消息內容'); $writer->debug('消息內容'); $writer->log('emergency', '消息內容', ['上下文' => '環境']); $writer->log('alert', '消息內容', ['上下文' => '環境']); ...... ~~~ # 事件監聽 每次執行日志輸出信息時,如果日志器包含事件分發器(即event dispatcher),則會觸發\Illuminate\Log\Events\MessageLogged::class這個事件; ~~~ \Illuminate\Log\Events\MessageLogged::class這個事件的構造函數如下: public function __construct($level, $message, array $context = []) { $this->level = $level; $this->message = $message; $this->context = $context; } ~~~ 首先如何為日志器設置事件分發器,有兩處,第一處是構造函數的第二個參數,可以傳入事件分發器實例;第二處是通過調用setEventDispatcher方法;Laravel在服務容器注冊綁定的日志器,帶有事件分發器; 現在,需要為日志寫入事件安排一些監聽器,通過調用listen方法,比如: ~~~ $dispatcher = $writer->getEventDispatcher(); $dispatcher->listen(\Illuminate\Log\Events\MessageLogged::class, function ($event) { // 監聽器的內容 }); ~~~ https://laravel-china.org/articles/6195/laravel-document-read-error-logging 配合ELK https://laravel-china.org/articles/3567/monolog-optimization-and-elk-friendly-log-format
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看