phpはseaslogでログを記録する

1757 ワード

Seaslogは便利で規範的なlog記録を行うことができ、効率的な大量log分析、配置、多ルートのlog警報などができる.
seaslogの紹介は、公式ドキュメントがはっきりしているので、言うまでもなく、phpログに関するseaslogに注意しなければならない点を主に話しています.
ログの記録と分析は、ログ記録、ログ収集、ログ分析の3つのステップに大きく変更されました.
ログ記録
一般的には、データベースとファイルに分けられます.データベースはmysqlというsqlデータベースとmongoに代表されるnosqlデータベースに分けられます.
どの方法でログを記録するかについては、多くの議論が続いていますが、実際には需要を見ています.ログを即時に分析する必要がある場合は、複雑なクエリーが必要な場合はデータベースを使用します.そうしないと、ファイルを使用します.実際のシーンでは、ファイルの数が多く、ユーザーのリソースを奪うことなく、ネットワーク層とデータベースIO層のリソースを浪費することがあります.
seaslogの使用中のいくつかの小さな問題
  • loggerディレクトリを作成するときは、ディレクトリ作成権限の問題に注意してください.
  • buffer_についてsizeの解釈では、公式ドキュメントが少しぼやけていて、混同されやすいが、実際にはリクエストが終了するたびに1回のlogが書かれている.同じリクエストでは、log回数(buffer_size)が100より大きい場合でも1回のlogが書かれている.log回数が100より小さい場合は、メモリに書き込み、回数が100以上になるまで、またはリクエストが終了してからlogを書くことで、ファイルIOのパフォーマンスを効果的に向上させることができる.
  • seaslogのcontentとmessageは、現在のバージョンで統合されているため、ip、ユーザー名などのログフォーマットをカスタマイズできます.
  • Seaslog::info('{username}|{ip}|this is a log info', array('{username}'=>'ssyleo', '{ip}'=>'127.0.0.1'));
    // info | 2352 | 1476693817.909 | 2016:10:17 04:43:37 | ssyleo | 127.0.0.1 | this is a log info
    

    Laravelのmongolog
    mongologは、RFC 5424に定義された7つのレベル:debug、info、notice、warning、error、critical、alertを提供するオープンソースのサードパーティクラスライブラリです.Laravelのデフォルトでは、storage/logsディレクトリに毎日のログファイルが作成されます.このようにログに情報を書くことができます.
    Log::info('This is some useful information.');
    

    seaslog拡張を使わなければmonologを使うのもいい選択です.
    ログの収集と分析
    比較的一般的なログ収集システムにはFlumeとScribeがあり、scribeはFacebookのオープンソースプロジェクトですが、現在はメンテナンスが停止しているようで、flumeはApache傘下に加入してからさらに優秀になりました.興味があるのはこの文章を見ることができます:Scribeに基づく奇虎360ログ収集システムアーキテクチャ
    一般的にオフライン分析で、ファイルorデータベースに基づいて、どんな言語でもいいです.これも、データベースを使わずにログを記録する主な原因の一つです.