2012-01-25 8 views
0

私は、大規模なデータエントリを処理して変更しているPHPプロジェクトに取り組んでいます。データはデータベースから取得され、7つの検証テストが行​​われます。データはソートされ、データベースに再び挿入されます。このプロセスは時間がかかり、エラーや障害を追跡するのが困難です。PHPプログラムのログファイルを書く

私のアプリケーションのログライタークラスを作成したいと思います。テキストファイル内の

  1. 書き込みログ
  2. 書き込みログ

データベース内のどの方法であり、より効率的またはその他のオプション:

は基本的に2つのオプションがありますか?

+0

[PHPロギングフレームワークの可能な複製?](http://stackoverflow.com/questions/341154/php-logging-framework) –

+1

私は複製に投票しましたが、実際に私はあなたが実際の質問。より効果的なのは、ファイルシステムがデータベースより効率的かどうかによって異なります。また、あなたが達成したいもの、どんな種類のログが必要なのかなどによって異なりますので、あなたの質問を改善してください。 – hakre

答えて

1

テキストファイルは、Unixマシンでコマンドラインから監視するのが容易である:

これは、あなたのテキストファイルの最新ラインの絶えず更新ビューを提供します。あなたはには、もちろんそうするためにがありません。ほとんどの場合、テキストファイルで十分だと思います。

データベースは、効率的なソート、フィルタリング、およびリレーショナル操作(つまり、あるログエントリを別の種類の情報に関連付けたい場合)に最適です。これを設定するには時間がかかりますので、このロギングをどのくらい永久に必要とし、どのくらい堅牢なも​​のにする必要があるかを決定してください。単純なレビューの場合は、テキストファイルを使用します。

2

独自のロガーを行うことができますしながら、私はあなたに十分にテストライブラリで、Apacheのfundationの支援を受けて

1

データベースにログを書くことは、これらのログは(のために稀にしか使用されていない場合にのみ効率的であるlog4phpをお勧めします一度エラーをチェックする必要があります)。ソートしてエラーをフィルタリングする場合は、データベースが必要です。

あなたはこのようにテーブルを作成することができます。あなたは本当に簡単にエラーを閲覧することができます

CREATE TABLE `logs` (
    `id` INT AUTO_INCREMENT, 
    `original_id` INT NOT NULL, -- will contain FOREIGN KEY 
    `new_id` INT DEFAULT NULL, -- will contain FOREIGN KEY 
    `validator_id` INT, -- ID of validator which triggered error 
    `type` ENUM('error', 'notice') DEFAULT 'error', 
    `message` VARCHAR(255) DEFAULT '', 
    PRIMARY KEY (`id`) 
) 

関連する問題