...
LogMsgRegistra 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 >, < oMsg1uMsg1 >, < oMsg2uMsg2 >, ... ) |
| 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 | | oMsgNuMsgN | Qualquer tipo | Mensagem a ser logada | | |
| Retorno | | | | 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”]’ | oMsgNuMsgN | 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 cMsgId 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. Documentos: | | | Exemplo | | | … #define // Facility #define FAC_FRAME_ 22#22 #define FAC_SEGMENTS_ 23 // Severity #define SEV_EMG_ 0 #define SEV_ALERT_ 1 #define SEV_CRITICAL_ 2 #define SEV_ERROR_ 3 #define define SEV_WARN_ 4 #define SEV_NOTICE_ 5 #define SEV_INFORM_ 6 #define SEV_DEBUG_ 7 User Function tlogmsg()… LogMsg("tmsglog", 'tlogmsg', FAC_FRAME_, SEV_WARNNOTICE_, 1, "", "", "Mensagem de alerta do Frame") ... |
|
|
|
Definição dos Parâmetros de configuração |
Protheus: Cliente de Logs |
|
Parâmetros do “.ini” | | | Parâmetro | Descrição | Obrigatório | Valor Default | Sessão | [LogClient] | X | | server | Nome da máquina onde está o servidor de logs | | localhost | port | Porta do servidor de logs | X | 0 | maxLogSize | Tamanho máximo do buffer de mensagens de logs (bytes) | | 200 Mbytes | percentUsageLogToStartLocalServer | Porcentagem já usada do Buffer de log para tentar ativar, como contingência, um servidor de logs local | | 50 | local_log_server_bin | Caminho completo do executável do servidor de logs local | | ../logserver/logserver | local_server | Nome da máquina local onde está o servidor de logs | | localhost | local_port | Porta do servidor local de logs | | 0 |
|
|
|
Exemplo | | | … [LogClient] server=172.16.84.41 port=514 maxLogSize=8000000 percentUsageLogToStartLocalServer=70 local_log_server_bin=/protheus11/logserver/logserver local_port=4002 local_server=127.0.0.1 ... |
|
|
|
|
LogServer: Servidor de Logs |
|
Parâmetros do “.ini” | | | Parâmetro | Descrição | Obrigatório | Valor Default | Sessão | [LogServer] | X | | port | Porta do servidor de logs | | 514 | Type | Tipo do Log e do formato de gravação. 3164 -> Lê e grava somente no formato do Syslog RFC 3164. 5424 -> Grava no formato do Syslog RFC 5424 e lê RFC 5424 e 3164. SysLog -> Grava no formato do Syslog recebido RFC 5424 ou 3164. Readable -> Similar a "SysLog", porém grava em formato mais legível. RawData -> Grava no formato que recebeu. (Dados brutos). | | 5424 | file | Nome do arquivo de log | | log_server.txt | file_size | Tamanho máximo do arquivo de log (bytes) | | 1 Mbyte | max_files | Número de arquivos de backup. (-1 equivale ao máximo de arquivos) | | 10 | backup_dir | Nome do diretório onde deve armazenar os backups | | ‘’ | flush | Forca a gravação do log a toda a escrita [ 0 ou 1] (fica muito lento) | | 0 | truncate | Zera o conteúdo do arquivo na abertura [ 0 ou 1 ] (somente válido para arquivos pré existentes) | | 1 | echo | Imprime na console os logs que estão sendo recebidos para gravação | | 0 | proxy_server | Nome do servidor para onde reencaminhar as mensagens recebidas | | ‘’ | proxy_port | Porta do servidor onde serão reencaminhadas as mensagens | | 0 | proxy_buffer | Tamanaho do buffer de mensagens para armazenar as mensagens para reencaminhar (bytes) | | 10 Mbytes |
|
|
|
Exemplo | | | … [LogServer] port=4002 type=3164 file=syslogmsg.log file_size=10485760 max_files=100 backup_dir=backup_logs flush=true truncate=false ... |
|
|
|
Obs. O LogServer só será disponibilizado como um executável separado da versão, e somente para as versões do TotvsTecNG ele passará a ser distribuido integrado a versão. |
...
'', '', '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. ... |
|
|
Obs. Para que as mensagens sejam enviados para o Servidor de Logs (Log Server) a "Sessão [LogClient]" deve ser definida no arquivo de configuração do servidor de aplicação. |
Abrangência
TOTVS Application Server a partir do release 7.00131227P00131227A
Veja Também
Sessão [LogClient]
Log Server - Arquivo de configuração
Log Management
Conout