Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Gravar Logs dos usuários Google Scripts em uma aba (Sheet)

Google Sheets, Google Docs, Google etc. Os apps do Google mais que merecem um fórum específico, e aqui está ele.
Avatar do usuário
TARSA
Colaborador
Colaborador
Mensagens: 36
Registrado em: Dom Set 11, 2016 5:04 pm

Gravar Logs dos usuários Google Scripts em uma aba (Sheet)

Mensagem por TARSA »

Olá Pessoal, ultimamente tenho utilizado as planilhas Google com algum sucesso, mas sempre aparece um desafio, portanto se alguém puder me ajudar eu agradeço. Abaixo o código sem erros no depurador, mas não está escrevendo na página os Logs. Obg.

function SALVAR_LOGS() {

var logText = Logger.getLog();
if (!logText)
return;

// Converte a sequência de log em uma matriz 2D em serie diretamente:
var logs = logText.split("\n").map(function (log) { return [log]; });

// Grava as informações nos registros do Stackdriver.

if (!logs || !logs.length || !logs[0].length) {
console.info({message: "Problema inesperado ao criar matriz de log",full_log_text: logText,log_array: logs});
return;
}

// Escreve o registro em uma Sheet .

var wb = SpreadsheetApp.openById("1875312990");
var sheet = wb.getSheetByName('DADOS02');

if (sheet) {
sheet.getRange(sheet.getLastRow() + 1, 1, logs.length, logs[0].length).setValues(logs);
Logger.clear();
}
}


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
TARSA
Colaborador
Colaborador
Mensagens: 36
Registrado em: Dom Set 11, 2016 5:04 pm

Re: Gravar Logs dos usuários Google Scripts em uma aba (Sheet)

Mensagem por TARSA »

Pessoal,

Sobre a dúvida que eu tinha neste tópico, consegui fazer funcionar e estou compartilhando caso alguém necessite, dá para melhorar muita coisa, porém atendeu o que eu precisava. Abs.

function LOG_DATA() {

var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('NOME ABA DESTINO'), true);

// Converte a sequência de log em uma matriz 2D em serie diretamente:

// Obs (1): Abaixo duas maneiras de capturar os dados, [Escolha uma e desative a outra], Leia o Obs (3).
// Obs (2): No "getSheets()[0]" é o número da aba dentro da planilha, ou seja [0] é a primeira criada.
// Obs (3): getDataRange() irá obter todos os dados da aba no tópico (2) e getRange('B3:L3') somente o intervalo escolhido.

// Opções referentes as Obs (1), (2) e (3)
// var logText = Logger.log(SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getDataRange().getValues());
// var logText = Logger.log(SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange('B3:L3').getValues());

//--------------------------------------------------------------------------------------
var logs = logText.getLog();

// Grava as informações nos registros do Stackdriver.

if (!logs || !logs.length || !logs[0].length) {
console.log({message: "Problema inesperado ao criar matriz de log",full_log_text: logText,log_array: logs});
return;
}

// Escreve o registro em uma Sheet

var wb = SpreadsheetApp.openByUrl("ENDEREÇO [https] DA SUA PLANILHA DESTINO");
var sheet = wb.getSheetByName('NOME ABA DESTINO');

spreadsheet.getRange('A1').activate();

if (sheet) {

sheet.getRange(sheet.getLastRow() + 1, 1, (logs.length)-(logs.length-1)).activate().setValue(logs);
//sheet.getRange(sheet.getLastRow() + 1, 1, logs.length, logs[0].length).activate().setValue(logs);
Logger.clear();

}

};


Responder