Ведение журнала
По умолчанию ошибки и предупреждения, созданные драйверами Майкрософт для 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)