ホームページ PHPフレームワーク ThinkPHP ThinkPHP6.0 バージョンのログ変更

ThinkPHP6.0 バージョンのログ変更

Dec 16, 2019 pm 01:41 PM
バラエティ ログ

ThinkPHP6.0 バージョンのログ変更

#6.0 のログの類似性は、以前のバージョンに比べて大幅に改善されています。主な新機能は次のとおりです:

·ログ情報のフォーマット

# ·マルチチャネル書き込みサポート

·遅延/リアルタイム書き込み

·ログ情報処理イベント

·ログレベル指定されたチャネル書き込み

· ログ/チャネルのクローズのサポート新しいバージョンのログ クラスの最大の変更点は、複数のログ クラスをサポートすることです。チャネル書き込み、つまり同時に書き込むことができます。または、一部のログ タイプに追加のログ チャネル書き込みを追加します。たとえば、一部の異常なログについては、エラー通知を電子メールに送信することを選択できます。

その他の主な変更点は次のとおりです。

·WEB ログと CLI ログがマージされ、統一された形式にフォーマットされます。

·アクセス情報はデフォルトでは記録されなくなりました。必要に応じて自分で記録できます;

·独立したログも JSON 形式の記録をサポート;ログの関連構成は、config/log.php ファイルで設定できます。この記事では、主に新しいバージョンのログの変更点について説明します。

ログ チャネル

ログ チャネルの概念は、ログ情報のためのログ領域を作成することに相当し、各ログ チャネルのログ情報は独立した書き込みメカニズムまたは構成を採用しています。パラメータを使用すると、ログ情報のデフォルトのログ チャネルを指定したり、チャネル書き込みを動的に切り替えたり、同じログ情報を複数のログ チャネルに同時に書き込むことができます。

ログ構成ファイルのチャネル構成でチャネルを定義できます。デフォルトでは、ファイル チャネルは 1 つだけ定義されています。

// 日志通道列表
'channels'     => [
    'file' => [
        // 日志记录方式
        'type'           => 'File',
        // 日志保存目录
        'path'           => '',
        // 单文件日志写入
        'single'         => false,
        // 独立日志级别
        'apart_level'    => [],
        // 最大日志文件数量
        'max_files'      => 0,
        // 使用JSON格式记录
        'json'           => false,
        // 日志输出格式化
        'format'         => '[%s][%s] %s',
        // 是否实时写入
        'realtime_write' => false,
    ],
    // 其它日志通道配置
],
ログイン後にコピー

各ログ チャネルは、ログの書き込み方法を決定する type パラメータを指定する必要があります。ファイルとは、ファイル ログ モードでの書き込みを意味します。他の書き込み方法を指定する必要がある場合は、追加の拡張機能をインストールする必要があります。 。ただし、異なるログ チャネルに同じタイプを指定しても、書き込みパスが異なるなど、他の構成パラメータが異なる場合もあります。

どのようなログ書き込みタイプが使用されるかに関係なく、各ログ チャネルがサポートできる一般的な構成は次のとおりです。

ThinkPHP6.0 バージョンのログ変更レベル パラメーターの使用法は次のとおりです。グローバルログ設定と一致します。コマンドラインモードを除き、デフォルトのログはリクエスト完了後に一度書き込まれます。リアルタイムにログ情報を書き込む必要がある場合は、設定が必要です。

'realtime_write'=>true,
ログイン後にコピー

コマンドライン下にある場合は、設定されているかどうかに関係なく、ログはリアルタイムで自動的に書き込まれます。

デフォルト チャネル

デフォルト パラメータを設定して、ログのデフォルト チャネルを定義します。例:

'default'=>'file',
ログイン後にコピー

Level channel

さまざまなログ レベルを設定し、さまざまなログ チャネルを使用できます。

'type_channel'=>[
// 对于error日志级别 同时写入file和email两个日志通道
'error'=>['file','email'],
]
ログイン後にコピー

レベル チャネルを設定した後、このレベルのログはデフォルト チャネルに記録されないことに注意してください。

ログ チャネルにはログ ドライバーの協力が必要ですが、ログ ドライバーをカスタマイズすることもできます。

チャネルの切り替え

現在のログのデフォルトの書き込みチャネルを手動で切り替えることもできます。例:

Log::channel('email')->info('这是日志信息');
ログイン後にコピー

複数のチャネルを使用するための切り替えをサポートします。記録 、例:

Log::channel(['email', 'file'])->info('这是日志信息');
ログイン後にコピー

ログ処理

ログ書き込みはイベント監視をサポートします。例:

Event::listen('think\event\LogWrite', function($event) {
    if('file' == $event->channel) {
        $event->log['info'][] = 'test info';
    }
});
ログイン後にコピー

クロージャのパラメータは LogWrite です。イベント クラス オブジェクト インスタンス では、次の 2 つの属性を取得できます。

ThinkPHP6.0 バージョンのログ変更ログ情報は、現在のログ チャネルの下のすべてのレベルのログ情報を含む 2 次元配列です (記録されます)。

ログ情報のフォーマット

システムには、ログ情報のフォーマット用の 2 つのパラメータが用意されています。1 つ目は、時間の表示形式をカスタマイズするための time_format です。2 つ目は、フォーマットを調整するためのものです。ログ出力形式のパラメータ。

'channels'    =>    [
    'file'    =>    [
        'type'          => 'file', 
        'json'        =>true
        'file_size'   => 1024*1024*10,    
        'time_format'   =>    'Y-m-d H:i:s',
        'format'        =>    '[%s][%s]:%s',
    ],
],
ログイン後にコピー

format パラメータの最初の %s はログ記録時間です (ログ時間の形式は time_format パラメータによって定義されます) 2 番目の %s はログ レベルです 3 番目の %s はログ情報です、順序を調整することはできません。

JSON 形式のログ

は、JSON 形式の記録ファイル ログをサポートできるため、一部のサードパーティのログ分析ツールによるログ分析の実行がより便利になります。

ログ設定ファイルに

return [
    'default'      => 'file',
    'channels'    =>    [
        'file'    =>    [
            'type'          => 'file', 
            'json'        =>true
            'file_size'   => 1024*1024*10,    
        ],
    ],
];
ログイン後にコピー

を追加して、JSON 形式のログ記録を有効にします。CLI コマンド ラインのログ記録も有効です。

和之前版本的区别在于,新版的每个日志信息都是一条JSON数据(旧版本是每个请求一条JSON数据)。

关闭日志

你可以通过调用close方法动态关闭日志写入。

// 关闭全局日志写入
Log::close();
// 关闭某个通道日志写入
Log::close('file');
ログイン後にコピー

如果调用close方法动态关闭日志,会自动调用clear方法清空日志。

清空日志

一旦执行save方法后,内存中的日志信息就会被自动清空,如果需要提前清空日志可以使用:

// 清空所有日志
Log::clear();
//清空通道日志可以使用
Log::clear('file');
ログイン後にコピー

在清空日志方法之前,你可以使用getLog方法获取内存中的日志。

// 获取(默认通道)日志
$logs = Log::getLog();
// 获取指定通道日志
$logs = Log::getLog('file');
ログイン後にコピー

日志清空仅仅是清空内存中的日志。

自定义驱动

日志通道需要自定义日志驱动,该日志驱动需要实现think\contract\LogHandlerInterface接口。

interface LogHandlerInterface
{
    /**
     * 日志写入接口
     * @access public
     * @param  array $log 日志信息
     * @return bool
     */
    public function save(array $log): bool;
}
ログイン後にコピー

众多ThinkPHP教程,尽在PHP中文网,欢迎在线学习!

本文转自:https://blog.thinkphp.cn/1186947

以上がThinkPHP6.0 バージョンのログ変更の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

win10のイベントID 6013とは何ですか? win10のイベントID 6013とは何ですか? Jan 09, 2024 am 10:09 AM

win10 のログは、ユーザーがシステムの使用状況を詳細に把握するのに役立ちます。自分の管理ログを探しているときに、ログ 6013 に遭遇したことがあるユーザーは多いでしょう。では、このコードは何を意味するのでしょうか。以下にそれを紹介しましょう。 win10 ログ 6013 とは: 1. これは通常のログです。このログの情報は、コンピュータが再起動されたことを意味するものではなく、最後の起動からシステムが実行されている時間を示します。このログは、毎日 1 回、12 時ちょうどに表示されます。システムの稼働時間を確認するにはどうすればよいですか? cmd に systeminfo と入力できます。その中に一行あります。

ロガーのバッファ サイズ ログの用途 ロガーのバッファ サイズ ログの用途 Mar 13, 2023 pm 04:27 PM

この機能は、開発時に使用される問題分析を容易にするために、使用情報と記録をエンジニアにフィードバックする機能であり、ユーザー自身がアップロード ログを生成することはほとんどないため、ユーザーにとっては役に立ちません。ロギング バッファは、ディスクに書き込まれる REDO ログの変更ベクトルを短期的に保存するために使用される小さな一時領域です。ディスクへのログ バッファーの書き込みは、複数のトランザクションからの変更ベクトルのバッチです。それでも、ログ バッファー内の変更ベクトルはほぼリアルタイムでディスクに書き込まれ、セッションが COMMIT ステートメントを発行すると、ログ バッファーの書き込み操作がリアルタイムで実行されます。

Win10 でのイベント 7034 エラー ログの問題のトラブルシューティング Win10 でのイベント 7034 エラー ログの問題のトラブルシューティング Jan 11, 2024 pm 02:06 PM

win10 のログは、ユーザーがシステムの使用状況を詳細に把握するのに役立ちます。多くのユーザーは、自分の管理ログを探しているときに、多くのエラー ログを見たことがあるはずです。そこで、どのように解決すればよいでしょうか。以下を見てみましょう。 win10 ログ イベント 7034 を解決する方法: 1. [スタート] をクリックして [コントロール パネル] を開きます。 2. [管理ツール] を見つけます。 3. [サービス] をクリックします。 4. HDZBCommServiceForV2.0 を見つけて、右クリックして [サービスの停止] を変更します。 「手動開始」へ

ThinkPHP6 でのログインの使用方法 ThinkPHP6 でのログインの使用方法 Jun 20, 2023 am 08:37 AM

インターネットと Web アプリケーションの急速な発展に伴い、ログ管理の重要性がますます高まっています。 Web アプリケーションを開発する場合、問題を見つけて特定する方法は非常に重要な問題です。ログ システムは、これらのタスクを達成するのに役立つ非常に効果的なツールです。 ThinkPHP6 は、アプリケーション開発者がアプリケーション内で発生するイベントをより適切に管理および追跡できるようにする強力なログ システムを提供します。この記事では、ThinkPHP6 のロギングシステムの使い方とロギングシステムの活用方法を紹介します。

iPhoneのヘルスケアアプリで薬の記録履歴を表示する方法 iPhoneのヘルスケアアプリで薬の記録履歴を表示する方法 Nov 29, 2023 pm 08:46 PM

iPhone では、ヘルスケア App に薬を追加して、毎日摂取する薬、ビタミン、サプリメントを追跡および管理できます。デバイスで通知を受信したときに、服用した薬またはスキップした薬を記録できます。薬を記録すると、どれくらいの頻度で薬を服用したか、または服用しなかったかを確認できるので、健康状態を追跡するのに役立ちます。この記事では、iPhone のヘルスケア アプリで選択した薬のログ履歴を表示する方法を説明します。ヘルスケア アプリで薬の記録履歴を表示する方法に関する短いガイド: ヘルスケア アプリ > 参照 > 薬 > 薬 > 薬の選択 > オプション&a に移動します。

Linuxシステムのログ閲覧コマンドを詳しく解説! Linuxシステムのログ閲覧コマンドを詳しく解説! Mar 06, 2024 pm 03:55 PM

Linux システムでは、次のコマンドを使用してログ ファイルの内容を表示できます。 tail コマンド: tail コマンドは、ログ ファイルの末尾の内容を表示するために使用されます。最新のログ情報を表示するための一般的なコマンドです。 tail [オプション] [ファイル名] 一般的に使用されるオプションは次のとおりです。 -n: 表示する行数を指定します。デフォルトは 10 行です。 -f: ファイルの内容をリアルタイムで監視し、ファイルが更新されたときに新しい内容を自動的に表示します。例: tail-n20logfile.txt#logfile.txt ファイルの最後の 20 行を表示 tail-flogfile.txt#logfile.txt ファイルの更新された内容をリアルタイムで監視 head コマンド: head コマンドは先頭を表示するために使用されます。ログファイルの

win10 ログのイベント ID455 の意味を理解する win10 ログのイベント ID455 の意味を理解する Jan 12, 2024 pm 09:45 PM

win10のログは内容が豊富で、自分の管理ログを探しているときにイベントID455の表示エラーを見たことがある人も多いと思いますが、これはどういう意味なのか見てみましょう。 win10 ログのイベント ID455 とは次のとおりです。 1. ID455 は、インフォメーション ストアがログ ファイルを開いたときに <file> で発生したエラー <error> です。

Linux でログを表示する 3 つのコマンド Linux でログを表示する 3 つのコマンド Jan 04, 2023 pm 02:00 PM

Linux でログを表示するための 3 つのコマンドは、1. ファイル内容とログ ファイルの変更をリアルタイムで表示できる tail コマンド、2. 複数のログ ファイルを同時に監視できる multitail コマンド、3.less コマンドです。画面を煩雑にすることなく、ログへの変更をすばやく表示できます。

See all articles