O método dataStore.startRequestLog( ) inicia o registro de petições ORDA de lado de cliente.
Este método deve ser chamado em um 4D remoto, do contrário não faz nada. Está criado para propósitos de depuração em configurações cliente/servidor.
O registro de petição ORDA pode ser enviada a um arquivo ou à memória, dependendo do parâmetro que tenha sido passado ao método:
- Se passar o objeto arquivo criado com o comando File, os dados de registro são escritos neste arquivo como uma coleção de objetos (formato JSON). Cada objeto representa uma petição.
Se o arquivo não existir, será criado. Do contrário, se o arquivo já existir, são anexados os novos dados de registro.
Se for chamado dataStore.startRequestLog( ) com um arquivo enquanto um registro será iniciado previamente na memória, o registro da memória para e é esvaziado.
Nota: um caráter deve ser agregado manualmente ao final de arquivo para realizar uma validação JSON
- Se passar um número no parámetro numPet (inteiro longo), a memória de inicio de sessão é esvaziada (se existir) e se incializa um novo registro. Manterá as petições numPet na memória até que se alcance o número, em cujo caso se esvaziarão os mais antigos (pilha FIFO).
Se for chamado dataStore.startRequestLog( ) com um numPet enquanto for iniciado previamente um registro num arquivo, o registro de arquivo for detido.
- Se não passar nenhum parâmetro,o registro se inicia na memória. Se dataStore.startRequestLog( ) anteriormente for chamado com um numPet (antes de um stopRequestLog( )), os dados de registro são empilhados na memória até a próxima vez que se esvazie o registro ou seja chamado a stopRequestLog().
Para obter uma descrição de formato de registro de petição ORDA, consulte a seção Petições cliente ORDA.
Se quiser registrar as petições de cliente ORDA em um arquivo e utilizar o número de sequência de registro:
C_OBJECT($e;$file)
$file:=File("/LOGS/ORDARequests.txt")
SET DATABASE PARAMETER(Client Log Recording;1)
ds.startRequestLog($file)
$e:=ds.Persons.get(30001)
ds.stopRequestLog()
SET DATABASE PARAMETER(Client Log Recording;0)
Se quiser registrar as petições de cliente ORDA na memória:
C_OBJECT($es)
C_COLLECTION($log)
ds.startRequestLog(3)
$es:=ds.Persons.query("name=:1";"Marie")
$es:=ds.Persons.query("name IN :1";New collection("Marie"))
$es:=ds.Persons.query("name=:1";"So@")
$log:=ds.getRequestLog()
ALERT("The longest request lasted: "+String($log.max("duration"))+" ms")