meg_nakagamiの日記スマートフォン用の表示で見るmeg_nakagamiの日記この広告は、90日以上更新していないブログに表示しています。programmingはじめにphpでデベロッパ向けアプリケーションログ機構をつくってみたのでその説明をしてみます。一般的にプログラミングにおいてデベロッパ向けロギングというのはコンポーネントを横断する概念です。して実装するとします。(設計上いろいろ考えなければならないことはあるでしょうが)一般的に機能の直交性が高ければ独立して実装できるものです。あるアプリケーションでデベロッパに何か情報を残したい要求があり、何らかのロギング機構を使用したとします。その場合、デベロッパが何を残したいかは具体的状況によって異なるため、ロギング機能をできるだけ細やかに使ってログを残したくなるのは当然です。(抽象化されたログにはあんまり意味が無い。ロギングというものを通した概念的つながりができてしまうわけです。プログラミング言語の特性によっては、そのログを出力するために必要な機能にも依存性が生じてしまいます。いう問題があるので、こういったオレオレライブラリによるロギング機構を使用することはおススメできません。依存するに値する信頼性の高いライブラリの機能を使用しましょう。(似たようなことが例外機構にも言えます。ついて深く知りません。私などが考えつくことは、有名なライブラリの作成者さんならば必ず考えて、もっとよい決断を下しているはずです。こんなものは私が個人で使用していれば十分で、別の人に使ってもらえるレベルではないと考えています。自分が何を考えたか、そういったことが何かの参考になる部分があるのではないかと思い、実装時に考えたことをちょっと説明をしてみようかとおもいました。いう意図なので、ソースコードはその時に考えたことをバラバラに記述しています。ようなオブジェクトを作りそれに移譲させるべきです。ここではディレクトリを指定し、その中に日付からつくったファイルを作成しそこに出力すれば良いということにしましょう。関数を使えばいいようです。気になりますが、まぁ二度と触れないのでいいとしましょう。ファイル名を何度も作るのはちょっとやなカンジですが、キャッシュしても良いことはあまりなさそうなので、必要経費と考えることにします。つくった文字列の末尾を返す関数です。準備しておかないとエラーが起こった時その場でエラーメッセージを表示します。その挙動は非常に鬱陶しいと感じるわけですが、出力しようとしている画面そのものにエラーメッセージが出てくれるということ自体は結構便利ではあります。問題は節操無く出力されるところにあるので、一度バッファリングして出力したいところに出力できるようにしましょう。関数でテーブルとして出力させます。出力、ファイルに書き出しつつ変数に蓄える。内容は「お察し下さい」ということで。?>とする必要が出てきましたが、本番ではすべきではないですし、忘れてもファイルには出力できるのでこれで良いものとします。無視され、いきなり落ちるようです。いう関数が使えそうなので、これで対応します。return;}register_shutdown_function('g_ShutdownHandler');これでいきなり落ちても一応ログは出力されるようです。挙げればログは出力できるようになってたりします。