PHPKonf 2025 Baku

openlog

(PHP 4, PHP 5, PHP 7, PHP 8)

openlogシステムのロガーへの接続をオープンする

説明

openlog(string $prefix, int $flags, int $facility): true

openlog() は、プログラムによるシステムロガーへの接続をオープンします。

openlog() の使用は必須ではありません。この関数は、 必要に応じて syslog() により自動的に呼び出されます。 この場合、prefix のデフォルト値は空文字列となります。

パラメータ

prefix

文字列 prefix が、各メッセージに追加されます。

flags

以下の定数のビットマスクを指定します:

facility

引数 facility には、 ロギングを行う際のメッセージ型を指定します。 これにより、異なった facility からのメッセージをどのように処理するかを、 設定ファイルが指定できるようになります。 以下の定数のうち、ひとつを指定する必要があります:

注意: このパラメータは、Windows では無視されます。

戻り値

常に true を返します。

変更履歴

バージョン 説明
8.2.0 この関数は、常に true を返すようになりました。 これより前のバージョンでは、失敗時に false を返していました。

参考

  • syslog() - システムログのメッセージを生成する
  • closelog() - システムログへの接続を閉じる

add a note

User Contributed Notes 1 note

up
1
Nimja
12 years ago
To those curious; switching between different facilities is NOT an issue. There is no apparent memory overhead (nor slowdown) by calling openlog multiple(12 * 10000) times.

Shown by this example:

<?php
$facilities
= array(
LOG_AUTH,
LOG_AUTHPRIV,
LOG_CRON,
LOG_DAEMON,
LOG_KERN,
LOG_LOCAL0,
LOG_LPR,
LOG_MAIL,
LOG_NEWS,
LOG_SYSLOG,
LOG_USER,
LOG_UUCP,
);

for (
$i = 0; $i < 10000; $i++) {
foreach (
$facilities as $facility) {
openlog('test', LOG_PID, $facility);
syslog(LOG_ERR, "This is a test: " . memory_get_usage(true));
}
}
?>
To Top