phpで一つのプロセスから複数のopenlogをするとごちゃごちゃになる

phpで一つのプロセスから複数のopenlogをするとごちゃごちゃになる。

openlog("myScripLog", LOG_PID, LOG_LOCAL0);
syslog(LOG_INFO, 'opened');
openlog("myScripLog", LOG_PID, LOG_USER);
syslog(LOG_INFO, 'dupricated opening.');

後からopenlogしたやつを上書きでopenlogする。
このケースだと最初のopenedはlocal0に書き出され、dupricated openingはuserに書き出される。
エラーは特に見られなかった。おかげさまで参った参った。

pearのLogを使うとどうだろう。

require_once('Log.php');
$log_local0 = Log::singleton('syslog', LOG_LOCAL0, 'myScriptLog');
$log_user = Log::singleton('syslog', LOG_USER, 'myScriptLog');

$log_local0->log('log to local0', LOG_INFO);
$log_user->log('log to user', LOG_INFO);
$log_local0->log('log to local0', LOG_INFO);
$log_user->log('log to user', LOG_INFO);

これだと、最初のログはLocal0に出るけど、そのあとの三つのログはuser側に流れちゃう。
これ直すとしたら面倒だなぁ・・・。メモだけにしておこう。

コメントを残す