Como programador 4D, pode já ter activado o registo de depuração para a resolução de problemas. 4D v17 R5 introduz várias melhorias para o ajudar a analisar estes ficheiros, tais como registar apenas o processo actual e registar chamadas para métodos de membros (métodos de recolha ou de objectos).
Novo selector para registo de processos
O SET DATABASE PARAMETER aceita agora um novo selector, Current process debug log recording. Chamado a partir de qualquer parte de um processo, começará a registar apenas para o processo actual e criará um ficheiro “4DDebugLog_pX_Y.txt” na pasta de registos 4D (onde X é o processo PUID e Y o número do ficheiro de sequência). Claro que também se pode obter o estado de registo de depuração do processo utilizando este novo selector com o comando Get database parameter .
SET DATABASE PARAMETER(Current process debug log recording;2+4+8)
Pode continuar a utilizar o selectorDebug log recording para registar os registos da actividade de todos os processos, excluindo os processos registados por Current process debug log recording.
Lembrete: pode aceder facilmente aos registos de depuração utilizando esta linha de código:
SHOW ON DISK(Get 4D folder(Logs folder))
Na imagem de ecrã abaixo, pode ver os registos gerados por cinco processos:
Tenha em mente que uma vez que o SET DATABASE PARAMETER não é seguro, o processo começará em modo cooperativo.
MÉTODOS de registo dos membros
Por defeito, os registos de depuração incluem agora chamadas para métodos de membros. São registados com o tipo de comando número 9. Se não quiser que os métodos de membro sejam incluídos, basta ligar para o SET DATABASE PARAMETER e os selectores Debug log recording ou Current process debug log recording com uma nova opção que tem o valor 32. Pode ainda combinar as opções para obter os registos de depuração que desejar.
Este exemplo mostra como registar as interfaces WiFi e Ethernet em colecções separadas:
SET DATABASE PARAMETER(Current process debug log recording;2+4+8)
C_COLLECTION ($_networkInterfaces;$_ethernet;$_wifi)
$_networkInterfaces:=Get system info.networkInterfaces
$_ethernet :=$_networkInterfaces.query("type = :1"; "ethernet")
$_wifi :=$_networkInterfaces.query("type = :1"; "wifi")
SET DATABASE PARAMETER (
Current process debug log recording;0)
O código retorna:
Mais segurança
Anteriormente, ao lançar os registos, eram gerados ficheiros até que não houvesse mais espaço em disco disponível. Para evitar erros ou activação acidental na Janela de Administração do Servidor 4D – que podem ser perigosos – o número de ficheiros gerados é limitado a 50 por defeito. Este limite pode ser modificado através da SET DATABASE PARAMETER e o selector Circular log limitation .
// Limit the number of logs files to 100 (the default number is set to 50)
SET DATABASE PARAMETER(Circular log limitation;100)