Google Apps Script를 이용한 커스텀 로그 모니터링 서비스
12475 단어 automationwebdevgoogleappsscript
내용물
1. 구글 문서 만들기
먼저 https://docs.google.com/document/u/0/에 로그를 저장할 새 Google 문서를 만듭니다. Google Apps Script 프로젝트 코드에서 사용할 ID를 얻습니다.
2. 코드 작성
먼저 https://script.google.com/home 으로 이동하여 새 Google Apps Script 프로젝트를 생성하겠습니다. 새 프로젝트를 만들었으면 코드를 작성할 시간입니다. Main.gs 파일에 다음 코드를 추가해 보겠습니다.
function logEvent(eventString, eventType='info') {
// get google docs to store the logs
var body = DocumentApp.openById('google-docs-id').getBody();
// get current time
var time = new Date().toUTCString();
// create a log string
var log = time + " - " + eventString;
// add log string to the google docs
body.appendParagraph(log);
}
위의 코드는 정말 간단합니다. 우리는 logEvent(eventString, eventType='info') 함수를 생성했습니다. 이 함수는 eventString, eventType(나중에 논의할 것임)이라는 두 개의 매개변수를 받습니다. 이 함수에서는 로그를 저장할 Google 문서의 본문을 가져옵니다. 그런 다음 현재 시간과 이벤트 문자열을 포함하는 새 문자열을 만들고 이 로그를 Google 문서의 본문에 추가합니다. 함수를 수동으로 실행하여 어떤 일이 발생하는지 확인할 수 있습니다.
로그를 색상으로 구분하여 보고 이벤트 유형을 식별할 수 있다면 좋을 것입니다. 위의 코드를 아래 코드로 수정해 보겠습니다.
function logEvent(eventString, eventType='info') {
// get google docs to store the logs
var body = DocumentApp.openById('google-docs-id').getBody();
// get current time
var time = new Date().toUTCString();
// create a log string
var log = time + " - " + eventString;
// add log string to the google docs
var par = body.appendParagraph(log);
var style = {};
style[DocumentApp.Attribute.FONT_SIZE] = 12;
// based on the event type choose the style
switch(eventType) {
case 'info':
style[DocumentApp.Attribute.FOREGROUND_COLOR] = '#0000ff';
break;
case 'success':
style[DocumentApp.Attribute.FOREGROUND_COLOR] = '#06ad00';
break;
case 'warning':
style[DocumentApp.Attribute.FOREGROUND_COLOR] = '#e67e00';
break;
case 'error':
style[DocumentApp.Attribute.FOREGROUND_COLOR] = '#ff0000';
break;
default:
style[DocumentApp.Attribute.FOREGROUND_COLOR] = '#000000'
break;
}
// apply the custom style the log string
par.setAttributes(style);
}
eventType의 값에 따라 로그 문자열에 스타일을 적용합니다. 기본적으로 각 새 이벤트는 정보 유형과 연결됩니다.
3. 웹 앱으로 배포
스크립트의 핵심 코드가 완료되었습니다. 마지막 단계는 React Web App 또는 Flutter App과 같은 모든 유형의 애플리케이션에서 호출할 수 있는 Web App으로 스크립트를 배포하는 것입니다. Main.js 파일에 다음 함수를 추가합니다.
// handles the get request to the server
function doPost(e) {
try {
// get query parameters
var eventString = e.parameter['event_name'];
var eventType = e.parameter['event_type'];
// log the event
logEvent(eventString, eventType)
// return json success result
return ContentService
.createTextOutput(JSON.stringify({"result": "success"}))
.setMimeType(ContentService.MimeType.JSON);
}
}
catch (e) {
// return json failure result
return ContentService
.createTextOutput(JSON.stringify({"result": "failure"}))
.setMimeType(ContentService.MimeType.JSON);
}
}
}
위의 코드는 Google Apps Script에 대한 게시 요청을 처리합니다. 스크립트 실행에 따라 애플리케이션에서 확인할 수 있는 JSON 응답이 다시 전송됩니다. 이 작업이 완료되면 스크립트를 웹 앱으로 배포하고 웹 앱 URL을 애플리케이션으로 사용할 수 있습니다.
결과
맞춤형 서버리스 로깅 시스템이 얼마나 잘 작동하는지 살펴보겠습니다.
대박! 이러한 색상 코딩은 로그를 사용자에게 친숙하게 만듭니다. 이러한 종류의 사용자 정의 로깅 시스템은 프로덕션 모드에서 애플리케이션을 디버그하는 데에도 도움이 될 수 있습니다. 또한 특정 종류의 이벤트에 대한 이메일 또는 슬랙 알림 기능을 구성하여 팀이 애플리케이션의 모든 불규칙성을 알릴 수 있습니다. 오늘 새로운 것을 배웠기를 바랍니다. 우리 팀에 대한 의심이나 감사가 있으면 아래 의견에 알려주십시오.
Reference
이 문제에 관하여(Google Apps Script를 이용한 커스텀 로그 모니터링 서비스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ravgeetdhillon/custom-log-monitoring-service-using-google-apps-script-44i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)