log4phpまたは他の何か?

ここでは、多くのアプリケーションスレッドから必要なものに直面しています。同じファイル内のログに書き込む必要があります(いいえ、データベースに適合しません)



flockでオプションを検討したところ、別のスレッドがファイルへの書き込み用のロックを取得する時間が非常に長いことに気付きましたが、拒否されました。



log4phpプロジェクトが見つかりました-これはlog4jプロジェクトからのphpのポートです





彼らはそれを修正しました-あらゆる種類のバグを取り除きました-本番環境に置きました。 そして、大きな負荷(1秒あたり約7〜10kのクエリ)で、log4phpはファイルへのマルチスレッド書き込みを実行しません(ログをスキップし、異なるスレッドからごちゃ混ぜに書き込みます)。 また、log4phpは、ファイルを制限まで満たすと、logrotateと同じ動作を開始します(ログファイルの名前はlog.txt.1に変更され、現在のログはゼロにリセットされます)。 log.txtがすでに名前を変更している場合)他のスレッドはlog.txtに書き込み、それから再びlog.txt.1に改名され、log.txt.1は大まかに言えば破壊されます-そしてそこに必要なログがあります:)



したがって、質問-マルチスレッドロギングに使用できるもの-は高速であり、必然的にマルチスレッドです。



All Articles