Entidade RETENCOES_LOGS

RTLOG.RETENCOES_LOGS

Descrição

As retenções de log são utilizadas para controlar a quantidade de informações de LOG que são mantidas de forma "on-line" no sistema. O principal objetivo, é o de estabelecer o tempo de retenção a ser utilizado para cada tipo de log. Em paralelo, esta entidade também mantém algumas estatísticas sobre cada um dos tipos de log existentes no mesmo.

Isso permite, por exemplo, que LOGs contendo avisos e mensagens de erro sejam eliminados em 1 semana, que LOGs de inclusão e alteração da base de dados sejam mantidos por 2 anos e que os logs das requisições do usuários seja mantido por 6 meses.

Esta entidade pode ser automaticamente populada pela rotina de atualização de estatísticas. Novos registros são criados com base nos LOGs encontrados na base, ficando a responsabilidade do administrador do sistema apenas definir o tempo de retenção a ser adotado para cada tipo.

Atributos

AtributoDomínioRegrasDescrição
IDID(18)Rqd PK Id:
Chave de identificação interna
TIPOUPPER(30)Rqd UK Tipo:
Nome do tipo de log. Ver RTLOG.LOGS.TIPO.

Exemplos:
  • CRITICAL EXCEPTION
  • ENT-EVE
  • ERROR
  • JOB
  • INFO
  • REPL
  • REQUEST
  • REQUEST ERROR
  • REQUEST_AJAX
  • SQL-DEL
  • SQL-INS
  • SQL-UPD
  • UNKNOWN EXCEPTION
  • WARNING
TEMPO_RETENCAOINTEGERTempo de retenção:
Tempo de retenção (em dias) em que os registros de LOG são mantidos no sistema.
Caso não informado, será considerado que este tipo de LOG nunca é removido do sistema.

Caso se deseje manter um determinado tipo de LOG que seja mantido por uma semana, então deve-se informar uma retenção de 7 dias o que fará com que o JOB de limpeza exclua registros com mais de 7 dias.
DATA_MAIS_ANTIGADATEData mais antiga:
Quando informado, indica a data de LOG deste tipo mais antiga que existe cadastrado no sistema. Este atributo é atualizado pelas rotinas de limpeza de LOG e/ou atualização dos dados estatísticos e é utilizado como referência para determinar a data de corte a ser executada por cada processo de limpeza, evitando criar um impacto muito grande na performance do sistema.
REGISTROS_DIADOUBLE(18)Registros por dia:
Indica a média de registros de LOG deste tipo que são criados diariamente. Este atributo é atualizado pela rotina de atualização das estatísticas.
ULTIMA_EXECUCAODATE_TIMEÚltima execução:
Data e hora da última vez que foi executada a limpeza dos registros expirados.
TEMPO_EXECUCAOBIG_INTEGER(18)Tempo de execução:
Tempo em milissegundos gasto para executar a rotina na ultima vez.

Regras

Atualizar estatísticas

Método que atualiza as estatísticas dos logs do sistema. Este processo contabiliza TODOS os logs do sistema agrupados por tipo calculando o número de registros e a data mais antiga e atualiza a entidade com estes valores (data mais antiga e média de registros por dia).
Este processo poderá criar novos registros. Neste caso, os registros serão criados SEM tempo de retenção.

Remover logs expirados

Esta rotina exclui todos os logs expirados, mas evitando que o processo exclua um período maior de dias do que o configurado na preferencia RTLOG.RETENCOES_LOGS.MAX_DIAS_EXCLUSAO.

Caso não existam registros de retenção, o sistema executa primeiro a rotina de atualização das estatísticas.

Para cada tipo de log que possui um tempo de retenção configurado a rotina executa um DML do tipo
delete from LOGS where tipo = ? and data_hora < ?
A data de corte a ser utilizada como filtro para a limpeza é calculada da seguinte forma: