Esses tempos fiz um aqui parecido com o tutorial que o Rodrigo Lins passou, fica bem bacana…
No meu caso eu uso cookies pro nome do usuário e o id do cliente fica localizado em sessão:
Biblioteca - log.php:
<?php
function log($logapl,$logreg,$logacao)
{
$userid = $_COOKIE["usuarioid"];
$logip = $_SERVER["REMOTE_ADDR"];
sc_exec_sql("INSERT INTO logs (cli_id,log_data,log_apl,log_acao,log_user,log_ip,log_campo) VALUES ([cli_id], NOW(), '$logapl', '$logacao', '$userid', '$logip', '$logreg')");
}
?>
Códigos inseridos nas aplicações:
// Formulário - evento OnLoad
$campo = "{campo}"; // nome do campo que interessa gravar (chave primaria por ex)
$apl = "nome_da_apl"; // nome da aplicação no sc
if (sc_btn_new) {$act = "NOVO";}
else {$act = "ABRIR";}
log($apl,$campo,$act);
// Formulários - evento OnValidate
$campo = "{campo}";
$apl = "nome_da_apl";
if (sc_btn_update) {$act = "ATUALIZAR";}
elseif (sc_btn_insert) {$act = "INSERIR";}
elseif (sc_btn_delete) {$act = "EXCLUIR";}
else {$act = "DESCONHECIDO";}
log($apl,$campo,$act);
// Consultas - evento OnInit
$campo = "-";
$apl = "nome_da_apl";
$act = "ABRIR";
log($apl,$campo,$act);
// Botões PHP com ações no banco de dados
$campo = "{campo}";
$apl = "nome_da_apl";
$act = "COMPRAR"; // aqui coloco a descrição da ação que o botão realiza..
log($apl,$campo,$act);
Na hora de mostrar o relatório dos logs eu faço um lookup do nome do campo buscando a descrição dele na tabela seg_aplicacoes (do exemplo “segurança” da netmake)…
o resultado fica assim: http://www.liderbus.net.br/logs.pdf