ThinkPhP は PHP 言語に基づいた、Web アプリケーションの開発フレームワークです。
ログフォーマット
ThinkPhP では、以下のロギング方法が使用されています。
<? php
Think\Log::record('D method instantiation does not find the model class' );
ログサンプル
[ 2016-05-11T21:03:05+08:00 ] 10.10.10.1 /index.php
INFO: [ app_init ] --START--
INFO: Run Behavior\BuildLiteBehavior [ RunTime:0.000014s ]
INFO: [ app_init ] --END-- [ RunTime:0.000091s ]
Info: [app_begin] -- start --
INFO: Run Behavior\ReadHtmlCacheBehavior [ RunTime:0.000038s ]
INFO: [ app_begin ] --END-- [ RunTime:0.000076s ]
INFO: [ view_parse ] --START--
INFO: Run Behavior\ParseTemplateBehavior [ RunTime:0.000068s ]
INFO: [ view_parse ] --END-- [ RunTime:0.000104s ]
INFO: [ view_filter ] --START--
INFO: Run Behavior\WriteHtmlCacheBehavior [ RunTime:0.000032s ]
INFO: [ view_filter ] --END-- [ RunTime:0.000062s ]
INFO: [ app_end ] --START--
INFO: Run Behavior\ShowPageTraceBehavior [ RunTime:0.000032s ]
INFO: [ app_end ] --END-- [ RunTime:0.000070s ]
ERR: D method instantiation does not find the model class
Logtail を使用して ThinkPhP ログを収集
Logtail を使用して ThinkPhP ログを収集する手順については、「Python ログ」をご参照ください。ネットワーク構成およびネットワーク設定に合わせて構成を選択します。
自動生成される正規表現は、ログサンプルのみを基にしており、すべてのログフォーマットに対応しているわけではありません。したがって、正規表現が自動生成されたら、修正を加える必要があります。
ThinkPhP ログは、複数行に渡り、定まった形式がありません。ThinkPhP ログより、時間、ユーザーの IP アドレス、アクセス URL、表示メッセージといったフィールドを抽出できます。メッセージフィールドの情報は複数行に渡り、定型化されていないため、1 つのフィールドとして扱われます。
Logtail より ThinkPhP ログの設定パラメータを取得
行の先頭の正規表現:
\[\s\d+-\d+-\w+:\d+:\d+\+\d+:\d+\s.
正規表現:
\[\s(\d+-\d+-\w+:\d+:\d+)[^:]+:\d+\s]\s+(\S+)\s(\S+)\s+(.
時間書式:
%Y-%m-%dT%H:%M:%S