builtin function

ビルトイン関数 - 詳細

Category: builtin_function

loglog()

★ログファイル出力:開発デバッグ用

関数

void loglog (  variant $var=null, string $sTag='log' )
★ログファイル出力:開発デバッグ用
パラメータ

第1引数: variant $var=null
第2引数: string $sTag='log'
戻り値

void
説明

変数の情報をログファイルに出力する。
ログファイルはデバッグで処理をトレースするのに利用する。
一度の処理で大量のログを吐くと途中でログが出力されなくなる場合がある(原因未特定。メモリの関係か?)

将来的にはログの種類別ソートにも利用したい。この場合第2引数の値を限定する必要がある。

出力例)
2010/04/02 21:37:41 [ip]192.168.11.29 [pid]3380 [log]BaseManager.php
2010/04/05 14:13:38 [ip]192.168.11.29 [pid]3380 [sql]SELECT * FROM mailtemp_data WHERE editor_id=5 AND stat=1 ORDER BY id ASC

第1引数は変数(integer型、string型)が入るものとする。配列やオブジェクトでも動作するがこちらは例外的な位置づけ。
第2引数は未指定で良い。値を指定する場合3文字程度がベスト。ex) log, sql, err, chk, fnc

注意)
出力された文字列をコピーすることがあると想定している。
この為コピーに不都合なエスケープシーケンスをただの文字列に変更している。

変更しているエスケープシーケンスは以下の通り。
「\'」=>「'」、「\\」=>「\」

またloglog()は、echoecho()と違ってstring型変数を指定した場合でもクォート挟みはない。
これは出力する内容にint型とstr型の違いを反映させていないから。配列やオブジェクトを「例外的」と位置付けているのはこの点から来ている。

006 - 2012/04/29 xirasaya: 判定のfile_exists()をis_file()に変更
005 - 2012/02/21 xirasaya:
Apacheが持っているプロセスIDを吐き出すように変更。
これにより同時にアクセスされた時のログがそれぞれ区別して確認できるようになった。
004 - 2011/08/17 xirasaya:
ファイルパーミッションを777に変更する処理を物理削除しようかと考えた。が止めた。
ApacheからPHPファイルが実行され、そこで生成するファイルは持ち主が「nobody」となる。
「nobody」が所有者となると、そのファイルのパーミッションを変更させずともファイルの操作ができるようになる。
だが、ローカルから本番へファイルをコピーする際にログファイルも一緒にコピーをしてしまうと(恐らく何も考えずにコピーするだろう)、
そのファイルの所有者がFTPでのログインしたアカウントの所有者となってしまい、その後はApache経由のファイル操作を受け付けなくなってしまう。
このことからパーミッションは常に777としておいた方が良いという結論に達した。
001 - 2007/10/31 xirasaya
ソースコード [表示]


[top]