log4js-node/lib/appenders/loggly.js

47 lines
1.2 KiB
JavaScript
Raw Normal View History

"use strict";
var layouts = require("../layouts")
, loggly = require("loggly")
, os = require('os');
/**
* Loggly Appender. Sends logging events to Loggly using node-loggly
*
* @param config object with loggly configuration data
* {
* token: 'your-really-long-input-token',
* subdomain: 'your-subdomain',
* tags: ['loggly-tag1', 'loggly-tag2', .., 'loggly-tagn']
* }
* @param layout a function that takes a logevent and returns a string (defaults to basicLayout).
*/
function logglyAppender(config, layout) {
layout = layout || layouts.basicLayout;
var client = loggly.createClient(config);
return function(loggingEvent) {
console.log('attempts', loggingEvent, layout(loggingEvent), config.tags);
client.log(layout(loggingEvent), config.tags, function(err, result){
if (err) {
console.log('Loggly: '+ err.message);
} else {
console.log('Loggly: '+ JSON.stringify(result));
}
});
};
}
function configure(config) {
var layout;
if (config.layout) {
layout = layouts.layout(config.layout.type, config.layout);
}
return logglyAppender(config, layout);
}
exports.name = "loggly";
exports.appender = logglyAppender;
exports.configure = configure;