CakeFest 2024: The Official CakePHP Conference

openlog

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

openlogОткрывает соединение к системному журналу

Описание

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

Функция openlog() открывает соединение к системному журналу для программы.

Использование openlog() не является обязательным. Эта функция при необходимости будет вызвана функцией syslog() автоматически, при этом параметр prefix будет по умолчанию равен false.

Список параметров

prefix

Строка prefix добавляется к каждому сообщению.

flags

Аргумент flags используется для указания используемых опций журналирования при создании записи журнала.

Опции openlog()
Константа Описание
LOG_CONS если при отправке данных системному журналу происходит ошибка, перевести вывод непосредственно в системную консоль
LOG_NDELAY открыть соединение с журналом без задержки
LOG_ODELAY (по умолчанию) отложить открытие соединения до вывода первого сообщения в журнал
LOG_PERROR выводить вместе со стандартной ошибкой сообщение журнала
LOG_PID добавить PID к каждому сообщению
Можно использовать одну или сразу несколько опций. При использовании нескольких опций необходимо разделять их OR, к примеру, для открытия соединения без задержки, записи в консоль и включения PID в каждое из сообщений, необходима следующая комбинация опций: LOG_CONS | LOG_NDELAY | LOG_PID

facility

Параметр facility используется для определения типа программы, создавшей сообщение журнала. Это позволяет определить (в конфигурации syslog) как будут обработаны сообщения журнала, поступающие из разных объектов.

Типы программ openlog()
Константа Описание
LOG_AUTH сообщения по безопасности/авторизации (необходимо взамен использовать LOG_AUTHPRIV в системах, где эта константа предопределена)
LOG_AUTHPRIV сообщения по безопасности/авторизации (частное)
LOG_CRON планировщик задач (cron и at)
LOG_DAEMON другие системные службы
LOG_KERN сообщения ядра
LOG_LOCAL0 ... LOG_LOCAL7 зарезервированы для локального использования, недоступны в Windows
LOG_LPR подсистема печати LPR
LOG_MAIL почтовая подсистема
LOG_NEWS подсистема новостей USENET
LOG_SYSLOG внутренние сообщения syslogd
LOG_USER общие сообщения на уровне пользователя
LOG_UUCP подсистема UUCP

Замечание:

LOG_USER - единственный верный тип журналирования в операционных системах Windows

Возвращаемые значения

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Смотрите также

  • syslog() - Генерирует сообщение для системного журнала
  • closelog() - Закрывает соединение с системным журналом

add a note

User Contributed Notes 2 notes

up
3
Nimja
10 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));
}
}
?>
up
1
sam dot wankaner at gmail dot com
9 years ago
In second parameter int $option, PI means Process ID (PID).
That is the unique number given to that process. For eg [30326]
To Top