Partilhar via


Atividade de registro

Descarregar o driver PHP

Por defeito, erros e avisos gerados pelos Microsoft Drivers para PHP para SQL Server não são registados no registo do sistema PHP. Este tópico discute como configurar a atividade de registo dos drivers. Para mais informações sobre como configurar definições de tratamento de erros PHP que não sejam específicas dos drivers, consulte a documentação PHP.

Registo de Atividade Usando o Driver PDO_SQLSRV

A única configuração de registo disponível específica para o driver de PDO_SQLSRV é a entrada de pdo_sqlsrv.log_severity no ficheiro php.ini.

Adicione o seguinte no final do seu ficheiro de php.ini:

[pdo_sqlsrv]  
pdo_sqlsrv.log_severity = <number>  

log_severity pode ser um dos seguintes valores:

Valor Description
0 O registo está desativado (é o padrão se nada estiver definido).
-1 Especifica que erros, avisos e notificações são registados.
1 Especifica que os erros são registados.
2 Especifica que os avisos são registados.
4 Especifica que os avisos são registados.

A informação de registo é adicionada ao ficheiro phperrors.log.

O PHP lê o ficheiro de configuração na inicialização e armazena os dados numa cache; também fornece uma API para atualizar estas definições e usar imediatamente, sendo escrita no ficheiro de configuração. Esta API permite que scripts de aplicação alterem as definições mesmo após a inicialização do PHP.

Registo de Atividade Usando o Controlador SQLSRV

Para ativar o registo, pode usar a função sqlsrv_configure ou alterar o ficheiro php.ini. Podes registar atividade em inicializações, ligações, instruções ou funções de erro. Também pode especificar se pretende registar erros, avisos, notificações ou os três.

Observação

Podes configurar a localização do ficheiro de registo no ficheiro php.ini. Consulte a documentação PHP para mais detalhes.

Ativar o Registo

Pode ativar o registo usando a função sqlsrv_configure para especificar um valor para a definição LogSubsystems . Por exemplo, a seguinte linha de código configura o driver para registar a atividade nas ligações:

sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN);

A tabela seguinte descreve as constantes que podem ser usadas como valor para a definição LogSubsystems :

Valor (equivalente inteiro entre parênteses) Description
SQLSRV_LOG_SYSTEM_ALL (-1) Ativa o registo de todos os subsistemas.
SQLSRV_LOG_SYSTEM_OFF (0) Desativa o registo de atividades. Este é o padrão.
SQLSRV_LOG_SYSTEM_INIT (1) Ativa o registo da atividade de inicialização.
SQLSRV_LOG_SYSTEM_CONN (2) Ativa o registo da atividade de ligação.
SQLSRV_LOG_SYSTEM_STMT (4) Ativa o registo da atividade das instruções SQL.
SQLSRV_LOG_SYSTEM_UTIL (8) Ativa o registo da atividade das funções de erro (como handle_error e handle_warning).

Pode definir mais do que um valor ao mesmo tempo para a definição LogSubsystems usando o operador lógico OR (|). Por exemplo, a seguinte linha de código ativa o registo da atividade tanto nas ligações como nas instruções:

sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN | SQLSRV_LOG_SYSTEM_STMT);

Também pode ativar o registo especificando um valor inteiro para a definição LogSubsystems no ficheiro php.ini. Por exemplo, adicionar a seguinte linha à [sqlsrv] secção do ficheiro de php.ini ativa o registo da atividade de ligação:

sqlsrv.LogSubsystems = 2

Ao somar valores inteiros, pode especificar mais do que uma opção ao mesmo tempo. Por exemplo, adicionar a seguinte linha à [sqlsrv] secção do ficheiro php.ini ativa o registo da atividade de ligação e de instruções:

sqlsrv.LogSubsystems = 6

Erros de registo, avisos e notificações

Depois de ativar o login, deve especificar o que deve registar. Pode registar um ou mais dos seguintes: erros, avisos e notificações. Por exemplo, a seguinte linha de código especifica que apenas os avisos são registados:

sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_WARNING);

Observação

A definição padrão do LogSeverity é SQLSRV_LOG_SEVERITY_ERROR. Se o registo estiver ativado e não for especificada a definição de Gravidade do Log , apenas os erros são registados.

A tabela seguinte descreve as constantes que podem ser usadas como valor para a definição LogSeverity :

Valor (equivalente inteiro entre parênteses) Description
SQLSRV_LOG_SEVERITY_ALL (-1) Especifica que erros, avisos e notificações são registados.
SQLSRV_LOG_SEVERITY_ERROR (1) Especifica que os erros são registados. Este é o padrão.
SQLSRV_LOG_SEVERITY_WARNING (2) Especifica que os avisos são registados.
SQLSRV_LOG_SEVERITY_NOTICE (4) Especifica que os avisos são registados.

Pode definir mais do que um valor ao mesmo tempo para a definição LogSeverity usando o operador lógico OR (|). Por exemplo, a seguinte linha de código especifica que erros e avisos devem ser registados:

sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_ERROR | SQLSRV_LOG_SEVERITY_WARNING);

Observação

Especificar um valor para a definição LogSeverity não ativa o registo. Deve ativar o registo especificando um valor para a configuração LogSubsystems e, em seguida, definir um valor para LogSeverity para especificar a gravidade do que é registado.

Também pode especificar uma definição para a definição LogSeverity usando valores inteiros no ficheiro php.ini. Por exemplo, adicionar a linha seguinte à [sqlsrv] secção do ficheiro php.ini permite apenas o registo de avisos:

sqlsrv.LogSeverity = 2

Ao somar valores inteiros, pode especificar mais do que uma opção ao mesmo tempo. Por exemplo, adicionar a seguinte linha à [sqlsrv] secção do ficheiro php.ini permite o registo de erros e avisos:

sqlsrv.LogSeverity = 3

Ver também

Guia de Programação para os Microsoft Drivers for PHP para SQL Server

Constantes (Controladores da Microsoft para PHP para SQL Server)

sqlsrv_configure

sqlsrv_get_config

Referência da API do Driver SQLSRV