あらすじ
とあるサーバーで発生したエラーログを取得したいんだけど、とりあえず 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 に変更すればいんじゃないかな。おしまい。