PHP Conference Japan 2024

openlog

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

openlog開啟與系統紀錄器的連線

說明

openlog(字串 $prefix, 整數 $flags, 整數 $facility): true

openlog() 會開啟程式與系統紀錄器的連線。

使用 openlog() 是非必要的。如果需要,它會被 syslog() 自動呼叫,此時 prefix 預設為空字串。

參數

prefix

字串 prefix 會被加到每條訊息中。

flags

下列常數的位元遮罩 (Bitmask)

facility

facility 參數用於指定記錄訊息的程式類型。這讓設定檔可以指定不同來源的訊息將以不同的方式處理。必須是下列常數之一

注意此參數在 Windows 上會被忽略。

返回值

永遠返回 true

更新日誌

版本 說明
8.2.0 此函數現在永遠返回 true。以前它在失敗時返回 false

參見

新增註記

使用者貢獻的註記 1 則註記

1
Nimja
11 年前
對於那些好奇的人來說;在不同的 facility 之間切換沒有問題。多次 (12 * 10000) 呼叫 openlog 沒有明顯的記憶體開銷(也沒有速度變慢)。

由此範例所示

<?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, "這是一個測試: " . memory_get_usage(true));
}
}
?>
To Top