Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
LOG FILE TO JSON
|
LOG FILE TO JSON ( rotaPastaDest {; tamMax {; rotaHist {; atrCampo}}} ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
rotaPastaDest | Texto |
![]() |
Rota da pasta de destino do arquivo salvo | |||||
tamMax | Inteiro longo |
![]() |
Tamanho máximo do arquivo JSON a criar (bytes) | |||||
rotaHist | Texto |
![]() |
Rota do arquivo de histórico a exportar; se omitido, usa o arquivo de histórico atual | |||||
atrCampo | Inteiro longo |
![]() |
Descrição do atributo do campo: 1 = usa número (padrão), 2 = usa nome | |||||
O comando LOG FILE TO JSON salva em formato JSON o arquivo de histórico atual ou todo arquivo de histórico especificado.
Quando o histórico (arquivo binário) for salvado em JSON, seu conteúdo pode ser lido e interpretado pelo administrador do banco de dados ou por qualquer usuário com o objetivo de analisar os eventos do banco de dados, por exemplo.
Em rotaPastaDest, passe a rota da pasta na que deseja armazenar o arquivo JSON. Este arquivo se chama JournalExport.json.
De forma pré-determinada, o tamanho máximo do arquivo JSON exportada é de 10 MB. Quando for alcançado este tamanho, o arquivo é fechado e é criado um novo arquivo. Limitar o tamanho de cada arquivo JSON reduz as exigências de memória para a análise dos arquivos. Pode mudar o tamanho máximo para o arquivo exportado definindo um valor (em bytes) no parâmetro tamMax. Passar 0 restaura o tamanho pré-determinado. Passar um valor negativo elimina todo limite de tamanho.
De forma pré-determinada, se o parâmetro rotaHist, for omitido o comando salva o arquivo de histórico atual. Se desejar exportar um arquivo de histórico específico, passe sua rota no parâmetro rotaHist. O arquivo de histórico deve ser um arquivo com uma extensão ".journal". Se desejar exportar um arquivo de histórico arquivado (extensão ".4bl"), é necessário converter o arquivo anteriormente com o comando RESTORE. Pode passar uma string vazia ("") para mostrar o diálogo padrão de abrir arquivo, o que permite ao usuário selecionar o arquivo de histórico a salvar. A rota do arquivo de histórico selecionado é devolvido na variável sistema Document.
Nota: quando o comando guardar o arquivo de histórico atual, o banco de dados não está bloqueado. As novas operações podem ser executadas enquanto o arquivo é escrito no disco, estas operações não são incluidas no arquivo salvo.
Quando exportar o arquivo de historial atual, o parâmetro atribCampo lhe permite definir como se descrevem os campos no atributo exportado: por número (pré-determinado), ou por nome. Pode passar uma das seguintes constantes, que se encontra no tema "Backup":
Constante | Tipo | Valor | Comentário |
Field attribute with name | Inteiro longo | 2 | Os campos são identificados por seu nome. Exemplo: {"Sobrenome":"Gómez"} |
Field attribute with number | Inteiro longo | 1 | Os campos são identificados por seu número (como padrão se for omitido). Exemplo: { "5":"Jones"}. |
Nota: quando exportar um arquivo de histórico externo, os campos sempre se identificam por seu número.
O arquivo JSON salvo contém todas as operações registradas no histórico, em forma de um array de objetos JSON. Cada objeto contém várias propriedades que descrevem a operação. Exemplo:
[
{
"operationType":25,
"operationName":"Modify record",
"operationNumber":45,
"contextID":37,
"timeStamp":"2015-06-11T09:13:17.138Z",
"dataLen":42,
"recordNumber":4,
"tableID":"5AFA15123F991C43B6ACF8B46A914BD0",
"tableName":"elem",
"fields": {
"1": "primkey5",
"2": -5,
"5": "data 25"
},
"primaryKey": "8"
},
{
"operationType":23,
"operationName":"Save seqnum",
"operationNumber":46,
"contextID":37,
"timeStamp":"2015-06-11T09:13:17.138Z",
"sequenceNumber":23,
"tableID":"5AFA15123F991C43B6ACF8B46A914BD0",
"tableName":"elem"
},
{
"operationType":24,
"operationName":"Create record",
"operationNumber":47,
"contextID":37,
"timeStamp":"2015-06-11T09:13:17.138Z",
"dataLen":570,
"recordNumber":7,
"tableID":"5AFA15123F991C43B6ACF8B46A914BD0",
"tableName":"elem",
"fields": {
"1": 9,
"2": "test value",
"3": "2003-03-03T00:00:00.000Z",
"4": "BlobPath: Table 1/Field 4/Data_9ACB28F1A2744FDFA5822B22F18B2E12.png",
"8": "BlobID: 2"
},
"extraData": {
"task_id": 1,
"user_name": "Vanessa Smith",
"user4d_id": 1,
"host_name": "iMac-VSmith-0833",
"task_name": "Application process",
"client_version": -1610541776
},
"primaryKey": "9"
}
]
Nota: se passou Field attribute with name no parâmetro atribCampo, o objeto "fields" conterá:
...
"fields": {
"ID": 9,
"Field_2": "test value",
"Date_Field": "2003-03-03T00:00:00.000Z",
"Field_4": "BlobPath: Table 1/Field 4/Data_9ACB28F1A2744FDFA5822B22F18B2E12.png",
"Field_8": "BlobID: 2"
},...
A lista atual de propriedades disponíveis depende do tipo de operação (por exemplo: criar registros, apagar registros, modificar registros, etc.). Aqui estão algumas das propriedades principais:
(*) Nos bancos de dados projeto, a propriedade "user4d_id" não é devolvida.
Para exportar o arquivo atual de journal em JSON:
LOG FILE TO JSON("c:\\4Dv15\\ExportLogs")
Para exportar um arquivo de journal arquivado em JSON:
LOG FILE TO JSON("c:\\4Dv15\\ExportLogs";0;"c:\\4Dv15\\Backup\\old_myDB.journal";Field attribute with name)
Ocomando LOG FILE TO JSON modifica o valor das variáveis OK e Document: se o arquivo JSON for guardado corretamente, OK toma o valor 1 e Document contem o nome de rota do arquivo de histórico. Se for passado "" no parâmetro rutaLog e o usuário cancelar o quadro de diálogo de seleção de arquivos, OK toma o valor 0 e o Document contém uma string vazia. Se o usuário selecionar um arquivo não válido, OK toma o valor 0 e o documento contém a rota do arquivo.
Produto: 4D
Tema: Backup
Número
1352
Criado por: 4D v15 R4
Manual de linguagem 4D ( 4D v20)
Manual de linguagem 4D ( 4D v20.1)
Manual de linguagem 4D ( 4D v20.2)
Manual de linguagem 4D ( 4D v20.3)
Manual de linguagem 4D ( 4D v20.4)
Manual de linguagem 4D ( 4D v20.5)
Manual de linguagem 4D ( 4D v20.6)