Поделиться через


Ведение журнала

Скачать драйвер PHP

По умолчанию ошибки и предупреждения, созданные драйверами Майкрософт для PHP для SQL Server, не регистрируются в системном журнале PHP. В этом разделе показано, как настроить ведение журнала драйвера. Дополнительные сведения о настройке параметров обработки ошибок PHP, которые не относятся к драйверам, см. в документации по PHP.

Ведение журнала с помощью драйвера PDO_SQLSRV

Единственной конфигурацией, доступной для драйвера PDO_SQLSRV, является запись pdo_sqlsrv.log_severity в файле php.ini.

Добавьте следующий код в конец файла php.ini:

[pdo_sqlsrv]  
pdo_sqlsrv.log_severity = <number>  

log_severity может являться одним из следующих значений:

значение Описание
0 Ведение журнала отключено (значение по умолчанию, если не указано иное).
-1 Указывает на регистрацию ошибок, предупреждений и уведомлений.
1 Указывает, что регистрируются ошибки.
2 Указывает, что регистрируются предупреждения.
4 Указывает, что регистрируются уведомления.

Сведения о ведении журнала записываются в файл phperrors.log.

PHP считывает файл конфигурации при инициализации и сохраняет данные в кэш. Он также предоставляет API для обновления этих параметров и оперативного использования, который записывается в файл конфигурации. Этот API позволяет скриптам приложений изменить параметры даже после инициализации PHP.

Ведение журнала с помощью драйвера SQLSRV

Чтобы включить ведение журнала, можно использовать функцию sqlsrv_configure или изменить файл php.ini. Вы можете вести журнал для инициализаций, соединений, инструкций или функций ошибок. Также можно указать, следует ли вести журналы ошибок, предупреждений и (или) уведомлений.

Примечание.

Расположение файла журнала можно настроить в файле php.ini. Дополнительные сведения см. в документации по PHP.

Включение ведения журнала

Вы можете включить ведение журнала, воспользовавшись функцией sqlsrv_configure, чтобы указать значение для параметра LogSubsystems. Например, следующая строка кода настраивает драйвер на регистрацию событий для соединений:

sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN);

Следующая таблица содержит константы, которые можно использовать в качестве значения для параметра LogSubsystems :

Значение (целочисленный эквивалент в скобках) Description
SQLSRV_LOG_SYSTEM_ALL (-1) Включает ведения журнала для всех подсистем.
SQLSRV_LOG_SYSTEM_OFF (0) Отключает ведение журнала. Это значение по умолчанию.
SQLSRV_LOG_SYSTEM_INIT (1) Включает ведения журнала по инициализации.
SQLSRV_LOG_SYSTEM_CONN (2) Включает ведения журнала по соединениям.
SQLSRV_LOG_SYSTEM_STMT (4) Включает ведения журнала по инструкциям.
SQLSRV_LOG_SYSTEM_UTIL (8) Включает ведение журнала по функция ошибок (таким как handle_error и handle_warning).

Для параметра LogSubsystems можно задать сразу несколько значений, воспользовавшись оператором логического ИЛИ (|). Например, следующая строка кода включает ведение журнала как для соединений, так и для инструкций:

sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN | SQLSRV_LOG_SYSTEM_STMT);

Вы также можете включить ведение журнала, указав целочисленное значение для параметра LogSubsystems в файле php.ini. Например, добавление следующей строки в раздел [sqlsrv] файла php.ini включает ведение журнала для соединений:

sqlsrv.LogSubsystems = 2

Путем сложения целочисленных значений можно указать сразу несколько параметров. Например, добавление следующей строки в раздел [sqlsrv] файла php.ini включает ведение журнала для соединений и инструкций:

sqlsrv.LogSubsystems = 6

Ведение журнала ошибок, предупреждений и уведомлений

После включения ведения журнала необходимо указать, что именно следует регистрировать. Можно записывать в журнал один или несколько следующих элементов: ошибки, предупреждения и уведомления. Например, следующая строка кода указывает, что регистрируются только предупреждения:

sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_WARNING);

Примечание.

Значением LogSeverity по умолчанию является SQLSRV_LOG_SEVERITY_ERROR. Если ведение журнала включено, а значение для LogSeverity не указано, регистрируются только ошибки.

Следующая таблица содержит константы, которые можно использовать в качестве значения для параметра LogSeverity :

Значение (целочисленный эквивалент в скобках) Description
SQLSRV_LOG_SEVERITY_ALL (-1) Указывает на регистрацию ошибок, предупреждений и уведомлений.
SQLSRV_LOG_SEVERITY_ERROR (1) Указывает, что регистрируются ошибки. Это значение по умолчанию.
SQLSRV_LOG_SEVERITY_WARNING (2) Указывает, что регистрируются предупреждения.
SQLSRV_LOG_SEVERITY_NOTICE (4) Указывает, что регистрируются уведомления.

Для параметра LogSeverity можно задать сразу несколько значений, воспользовавшись оператором логического ИЛИ (|). Например, следующая строка кода задает регистрацию ошибок и предупреждений:

sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_ERROR | SQLSRV_LOG_SEVERITY_WARNING);

Примечание.

Указание значения для параметра LogSeverity не включает ведение журнала. Необходимо включить ведение журнала, указав значение для параметра LogSubsystems, а затем указать уровень серьезности регистрируемых сведений, задав значение LogSeverity.

Значение для параметра LogSeverity Можно также указать с помощью целочисленных значений в файле php.ini. Например, при добавлении следующей строки в раздел [sqlsrv] файла php.ini ведение журнала включается только для предупреждений:

sqlsrv.LogSeverity = 2

Путем сложения целочисленных значений можно указать сразу несколько параметров. Например, при добавлении следующей строки в раздел [sqlsrv] файла php.ini включается ведение журнала ошибок и предупреждений:

sqlsrv.LogSeverity = 3

См. также

Руководство по программированию драйверов Microsoft для PHP для SQL Server

Константы (драйверы Microsoft Drivers for PHP for SQL Server)

sqlsrv_configure

sqlsrv_get_config

Справочник по API для драйвера SQLSRV