あらすじ
とあるサーバーで発生したエラーログを取得したいんだけど、とりあえず Datadog 経由で取得することになった
add original appender
log4js の appender をでっち上げて request してみましょう
% mkdir practice-log4js-appender && cd $_ % npm init --yes % git init && git add . && git commit -m 'first commit' % npm install --save log4js request echo-server
run echo-server: http://localhost:4000
% $(npm bin)/echo-server &
create main.js
'use strict';
var request = require('request');
var log4js = require('log4js');
var layout = log4js.layouts.messagePassThroughLayout;
var URL = 'http://localhost'
log4js.addAppender(function (loggingEvent) {
var data = {
title: 'hello, datadog',
text: layout(loggingEvent),
tags: ["enviroment:test"],
}
request({
url: URL,
method: 'POST',
headers: { 'Content-type': 'application/json; charset=UTF-8' },
json: true,
body: data
}, function(err, response, body) {
console.log(err, response, body);
});
}, 'datadog');
var logger = log4js.getLogger("datadog");
logger.warn(new Error("Test Warn message"));
これを実行して echo server が返事をする事を確認します。 あとは URL を datadog に変更すればいんじゃないかな。おしまい。