PN
Dúvidas sobre ativação do LOG DE SQL
Boa dia Amigos,
Alguém poderia me ajudar a entender como ativar as atualizações na tabela "system_sql_log" ?? Já ativei, em alguns modelos, a trait: "SystemChangeLogTrait" e funciona perfeitamente, só que atualizando somente sua respectiva tabela: "system_change_log". E não consigo identificar se o log de SQLs está funcional ou pelo menos ver seu resultado pratico.
Estou testando com o banco POSTGRES e utilizo na minha conexão o arquivo de parâmetros postgres.php abaixo, ao invés do postgres.ini:
Alguém poderia me ajudar a entender como ativar as atualizações na tabela "system_sql_log" ?? Já ativei, em alguns modelos, a trait: "SystemChangeLogTrait" e funciona perfeitamente, só que atualizando somente sua respectiva tabela: "system_change_log". E não consigo identificar se o log de SQLs está funcional ou pelo menos ver seu resultado pratico.
Estou testando com o banco POSTGRES e utilizo na minha conexão o arquivo de parâmetros postgres.php abaixo, ao invés do postgres.ini:
- <?php
- // Parametros de conexão ao banco de dados em postgresql
- $aParamConexao = array();
- $aParamConexao['host'] = "localhost";
- $aParamConexao['port'] = "5432";
- $aParamConexao['name'] = empresa1'
- $aParamConexao['user'] = "xxxxxx";
- $aParamConexao['pass'] = "xxxxxx";
- $aParamConexao['type'] = "pgsql";
- $aParamConexao['prep'] = "1";
- $aParamConexao['char'] = "UTF-8";
- <b> $aParamConexao['slog'] = "SystemSqlLogService"; <<---- UTILIZEI ESTE PARÂMETRO POR SUGESTÕES ENCONTRADAS AQUI NO FÓRUM !!! </b>
- return $aParamConexao;
- OBS. Todos os logs estão funcionando certinho, só não consigo ativar este de SQL.
- Se alguém souber e puder me dar uma luz de como gerar conteúdo neste log, agradeço muito.
- Abs,
- Paulo Nobre
Salve Amigos,
Depois de algumas análises aqui, consegui identificar o por que do log de SQL não estar funcionando aqui no meu caso. Na classe SystemSqlLogService.class.php tem essa condição:
if ($dbname !== 'postgres' AND (in_array(substr($message,0,6), array('INSERT', 'UPDATE', 'DELETE') ) ) )
Não sei qual o motivo específico desta condição ( $dbname !== 'postgres' ) ??!! mas exatamente ela, evita a gravação quando o .ini é denominado "postgres", que é o meu caso !!! Identificando isso, preferi comenta-la ao invés de ter que trocar por um outro nome em toda a aplicação.
Abs,
Paulo Nobre
Olá Paulo!
Conseguiu descobrir o motivo dessa condição? Passo pelo mesmo problema agora.
Salve Geovani, tudo em paz ?
Vamos lá:
1) Incluir o parametro abaixo no arquivo com os parametros de conexão do seu banco aí, seja ele o .ini ou um .php:
$aParamConexao = array();
$aParamConexao['host'] = "localhost";
$aParamConexao['port'] = "5432";
$aParamConexao['name'] = 'empresa1'
$aParamConexao['user'] = "xxxxxx";
$aParamConexao['pass'] = "xxxxxx";
$aParamConexao['type'] = "pgsql";
$aParamConexao['prep'] = "1";
$aParamConexao['char'] = "UTF-8";
$aParamConexao['slog'] = "SystemSqlLogService";
2) Se vc for optar em deixar o nome "postgres" como sendo o do seu arquivo .ini ou .php, vc vai ter que realmente comentar essa linha:
if ($dbname !== 'postgres' AND (in_array(substr($message,0,6), array('INSERT', 'UPDATE', 'DELETE') ) ) )
no seu arquivo SystemSqlLogService.class.php
3) No meu caso aqui, preferi usar um outro nome para o arquivo de parametros e optei por ser .php ao invés de .ini. Como uso LINUX e sempre vou usar o banco POSTGRESQL, usei um comando do linux para trocar em todo meu projeto o texto 'postgres' por 'empresa1' e desta forma não precisei alterar a classe SystemSqlLogService.class.php.
Destas formas vc vai conseguir registrar o log de slq.
Teste aí e me dê um retorno se deu ok.
Abs,
Paulo
Obrigado paulo!
Forte abraço!