4D permite obter um histórico de requisições.
Este arquivo se chama “logweb.txt” e se localiza automaticamente:
- com 4D em modo local e 4D Server, na pasta Logs localizada ao lado do archivo de estrutura do banco.
- com 4D em modo remoto, na subpasta Logs da pasta do banco do cliente 4D (pasta cache).
A ativação e a configuração do conteúdo do arquivo de histórico se realizam nas Propriedades do banco, página Web/Histórico (formato):
Nota: a ativação e desativação do arquivo de histórico das requisições pode igualmente ser realizado por programação utilizando o comando SET DATABASE PARAMETER (4D v12) ou WEB SET OPTION (4D v13 e posteriores).
O menu de formato do histórico oferece as seguintes opções:
- Sem histórico: quando esta opção estiver selecionada, 4D não gerará um arquivo de histórico das requisições.
- CLF (Common Log Format): quando se seleciona esta opção, o histórico de requisições é gerado no formato CLF. Com o formato CLF, cada linha do arquivo representa uma requisição, por exemplo:
host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length
Cada campo está separado por um espaço e cada linha termina na sequência CR/LF (caractere 13, caractere 10).
- host: direção IP do cliente (exemplo. 192.100.100.10)
- rfc931: informação não gerada por 4D, é sempre um - (um sinal de menos)
- usuário: nome do usuário tal qual é autenticado, ou do contrário - (sinal de menos). Se o nome de usuário contém espaços, serão substituídos por _ (um traço inferior ou grifo)
- DD: dia, MMM: abreviação de 3 letras do nome do mês (Jan, Fev,...), YYYY: ano, HH: hora, MM: minutos, SS: segundos
- A data e a hora são locais ao servidor.
- request: requisição enviada pelo cliente (ex. GET /index.htm HTTP/1.0)
- state: resposta dada pelo servidor.
- length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0.
Nota: por razões de rendimento, as operações são guardadas no buffer de memória em pacotes de 1Kb antes de serem escritas no disco. As operações também estão escritas no disco se nenhuma requisição foi enviada por 5 segundos.
Os possíveis valores de estado são os seguintes:
200: OK
204: Sem conteúdo
302: Redireção
304: Não modificado
400: Autenticação incorreta
401: Autenticação necessária
404: Não encontrado
500: Erro interno
O formato CLF não pode ser personalizado.
- DLF (Combined Log Format): quando se seleciona esta opção, o histórico de requisições é gerado no formato DLF. O formato DLF é similar ao formato CLF e utiliza exatamente a mesma estrutura. Simplesmente contém dois campos HTTP adicionais ao final de cada requisição: Referer e User-agent.
- Referer: contém a URL da página que aponta ao documento solicitado.
- User-agent: contém o nome e a versão do navegador ou do pacote cliente na origem da petição.
O formato DLF não pode ser personalizado.
- ELF (Extended Log Format): quando esta opção estiver selecionada, o histórico de requisições é gerado no formato ELF. O formato ELF está amplamente expandido no mundo dos navegadores HTTP. Pode ser utilizado para criar históricos sofisticados, que respondam a necessidades específicas. Por esta razão, o formato ELF é personalizável: é possível escolher os campos a gravar assim como a ordem de inserção no arquivo.
- WLF (WebStar Log Format): quando se seleciona esta opção, o histórico de requisições é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. É similar ao formato ELF, com apenas uns poucos campos adicionais. Do mesmo jeito que o formato ELF, é personalizável.
Configurar os campos
Quando escolher o formato ELF (Extended Log Format) ou WLF (WebStar Log Format), a área “Formato personalizado do histórico Web” mostra os campos disponíveis para o formato. Deve selecionar cada campo a ser incluído no histórico. Para isso, utilize os botões de flecha ou simplesmente arraste e solte os campos que queira na área “Campos selecionados”.
Nota: não é possível selecionar o mesmo campo duas vezes.
A seguinte tabela lista os campos disponíveis para cada formato (em ordem alfabética) e descreve seus conteúdos:
Campo | ELF | WLF | Valor |
BYTES_RECEIVED | | X | Número de bytes recebidos pelo servidor |
BYTES_SENT | X | X | Número de bytes enviados pelo servidor ao cliente |
C_DNS | X | X | Direção IP do DNS (ELF: campo idêntico ao campo C_IP) |
C_IP | X | X | Direção IP do cliente (por exemplo 192.100.100.10) |
CONNECTION_ID | | X | Número único da conexão |
CS(COOKIE) | X | X | Informação sobre os cookies contidos na requisição HTTP |
CS(HOST) | X | X | Campo Host da requisição HTTP |
CS(REFERER) | X | X | URL da página que dirige ao documento solicitado |
CS(USER_AGENT) | X | X | Informação sobre o software e o sistema operativo do cliente |
CS_SIP | X | X | Direção IP do servidor |
CS_URI | X | X | URI na qual a requisição se realiza |
CS_URI_QUERY | X | X | Parâmetros de pesquisa de requisições |
CS_URI_STEM | X | X | Parte da requisição sem os parâmetros de pesquisa |
DATE | X | X | DD: día, MMM: abreviação de 3 letras para o mês (Jan, Fev, etc.), YYYY: ano |
METHOD | X | X | Método HTTP utilizado para a requisição enviada ao servidor |
PATH_ARGS | | X | Parâmetros da CGI: string localizada depois do carctere “$” |
STATUS | X | X | Resposta oferecida pelo servidor |
TIME | X | X | HH: hora, MM: minutos, SS: segundos |
TRANSFER_TIME | X | X | Tempo solicitado pelo servidor para gerar a resposta |
USER | X | X | Nome do usuário se é autenticado; do contrário - (sinal de menos). |
| | | Se o nome de usuário contém espaços, são substituídos por _ (traço inferior ou grifo) |
URL | | X | URL solicitada pelo cliente |
Nota: datas e horas estão em GMT.