あいつの日誌β

働きながら旅しています。

Getting applicaiont error via Datadog in Node.js

あらすじ

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