Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

LogMsg

Registra uma mensagem de log com as informações do sistema no formato SysLog (RFC 5424), e automaticamente insere informações como: data e hora da geração da mensagem, hostname e id da thread.

O Log é expedido para o servidor de log (LogServer) de forma assíncrona, não gerando contenção no servidor de aplicação, podendo ser usado como “trace” sem grande prejuízo para a execução.

 

Sintaxe

 

 

LogMsg( < cFunc >, < nFacility >, < nSeverity >, < nVersao >, < cMsgId >, < cStrData >, < uMsg1 >, < uMsg2 >, ... )

Parâmetros

 

 

Nome

Tipo

Descrição

Obrigatório

Referência

cFunc

Caracter

Nome da função/aplicação onde o log está sendo gerado

X

 

nFacility

Numérico

Chave de armazenamento do valor

X

 

nSeverity

Numérico

Valor a ser armazenado na chave

X

 

nVersao

Numérico

Número da versão

X

 

cMsgId

Caracter

Identificador da mensagem

X

 

cStrData

Caracter

Dados estruturados

X

 

uMsgN

Qualquer tipo

Mensagem a ser logada

 

 

Retorno

 

 

Nome

Tipo

Descrição

 

 

 

Observações

 

 

Conteúdo dos campos:

Nome

Conteúdo simplificado

Exemplo1

Exemplo 2

cFunc

‘’ / de 1 até 48 caracteres printáveis

‘testLog’

‘’

nFacility

De 0 até 23

22

23

nSeverity

De 0 até 7

5

3

nVersao

De 1 até 999

123

32

cMsgId

‘’ / de 1 até 32 caracteres printáveis

‘’

‘MSG00048’

cStrData

‘’ / ‘[‘ ID NOME1=”valor1” NOME2=”valor2”]

‘’

‘[pagto soma=”543”]’

uMsgN

Qualquer caracter

‘Mensagem de Log1’

‘Erro de cálculo da folha de pagamento’

  • Conteúdo simplificado: Para a descrição completa dos campos ver na RFC 5424, todavia para facilitar o uso dos campos: cFunc, sMsgId e cStrData,caso não seja fornecido nenhum valor (‘’), o valor nulo (NILVALUE)(‘-’) será inserido.
  • caracteres printáveis: são letras, números, sinais e que não contém espaços ou tabulações. Na tabela ASCII são os caracteres compreendidos entre os valores 33( ! ) e 126( ~ ).
  • O A soma do tamanho de todos os campos da mensagem de log não devem ultrapassar 10000 bytes.

 

 

Para uma completa descrição de todos os campos segue a equivalência de cada campo da mensagem com os campos descritos no documento RCF 5424.

Nome

Equivalência na RFC 5424

6. Syslog Message Format

cFunc

APP-NAME

nFacility

PRIVAL à 6.2.1.  PRI à Facility

nSeverity

PRIVAL à 6.2.1.  PRI à Severity

nVersao

VERSION

cMsgId

MSGID

cStrData

STRUCTURED-DATA

uMsgN

MSG-ANY

 

 

Documentos:

Documento

Referência
Revisão

RFC 5424

https://tools.ietf.org/html/rfc5424

 Março de 2009.

Tabela ASCII

http://www.asciitable.com/

 

 

 

 

 

Exemplo

 

 

// Facility
#define FAC_FRAME_ 22
#define FAC_SEGMENTS_ 23

// Severity
#define SEV_EMG_ 0
#define SEV_ALERT_ 1
#define SEV_CRITICAL_ 2
#define SEV_ERROR_ 3
#define SEV_WARN_ 4
#define SEV_NOTICE_ 5
#define SEV_INFORM_ 6
#define SEV_DEBUG_ 7

User Function tlogmsg()

LogMsg('tlogmsg', FAC_FRAME_, SEV_NOTICE_, 1, '', '', 'Mensagem do Frame 1')
LogMsg('tlogmsg', FAC_FRAME_, SEV_WARN_, 1, '', '', 'Mensagem do Frame 2')
LogMsg('tlogmsg', FAC_SEGMENTS_, SEV_INFORM_, 1, '', '', 'Mensagem do Segments 1')
LogMsg('tlogmsg', FAC_SEGMENTS_, SEV_INFORM_, 1, '', '', 'Mensagem do Segments 2')
LogMsg('tlogmsg', FAC_FRAME_, SEV_CRITICAL_, 1, '', '[frame msg="mensagem 3" nro="2"]', '')
LogMsg('tlogmsg', FAC_SEGMENTS_, SEV_ERROR_, 1, '', '[seg val="teste 1" nroid="4"]', '')

Return .T.

...

 

...