PHPのerror_log関数(http://www.php.net/manual/ja/function.error-log.php)について質問です。


たとえば、複数のアプリケーションから同時のタイミングでこのerror_log関数によるエラーログの書き込みがあった場合、排他制御により一部のエラーログが記録されない、といった事態は起こりえないのでしょうか?

実際に、複数のアプリケーションで同時にerror_log関数を呼び出してみたのですが、すべて記録されていました。が、実行タイミングによっては、排他制御により記録されないエラーログが出てしまうのは困るということで、質問させていただきます。

回答の条件
  • 1人2回まで
  • 登録:2009/09/23 13:22:18
  • 終了:2009/09/23 15:02:44

ベストアンサー

id:chrono1742 No.1

chrono1742回答回数91ベストアンサー獲得回数132009/09/23 14:12:24

ポイント45pt

PHPは、基本的にシングルスレッドでしか動きません。

複数のアプリケーションが動いているように見えても、各々のタスクに分けて処理を行っています。


CGIモードでpcntl_forkを使ってマルチスレッド化したり、PHP以外のアプリからログファイルの更新をしない限り、競合は起きません。

http://techblog.ecstudio.jp/tech-tips/php-multi.html

id:kantankeizai

なるほど、マルチスレッド化しない限りは、ログファイルで競合が起こることはないのですね。ご丁寧な解説、ありがとうございました。大変参考になりました。

2009/09/23 14:49:45

その他の回答(1件)

id:chrono1742 No.1

chrono1742回答回数91ベストアンサー獲得回数132009/09/23 14:12:24ここでベストアンサー

ポイント45pt

PHPは、基本的にシングルスレッドでしか動きません。

複数のアプリケーションが動いているように見えても、各々のタスクに分けて処理を行っています。


CGIモードでpcntl_forkを使ってマルチスレッド化したり、PHP以外のアプリからログファイルの更新をしない限り、競合は起きません。

http://techblog.ecstudio.jp/tech-tips/php-multi.html

id:kantankeizai

なるほど、マルチスレッド化しない限りは、ログファイルで競合が起こることはないのですね。ご丁寧な解説、ありがとうございました。大変参考になりました。

2009/09/23 14:49:45
id:goog20090901 No.2

goog20090901回答回数637ベストアンサー獲得回数172009/09/23 13:25:09

ポイント35pt

log4とか使ったほうが良いのでは?

http://www.doyouphp.jp/tips/tips_log4php.shtml

id:kantankeizai

こういうものもあるのですね!参考になりました。

ありがとうございます!

2009/09/23 15:02:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません