aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/log4js/lib/appenders/logstashUDP.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/log4js/lib/appenders/logstashUDP.js')
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/log4js/lib/appenders/logstashUDP.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/log4js/lib/appenders/logstashUDP.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/log4js/lib/appenders/logstashUDP.js
new file mode 100644
index 00000000..504f3ee4
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/log4js/lib/appenders/logstashUDP.js
@@ -0,0 +1,68 @@
+"use strict";
+var layouts = require('../layouts')
+, dgram = require('dgram')
+, util = require('util');
+
+function logstashUDP (config, layout) {
+ var udp = dgram.createSocket('udp4');
+ var type = config.logType ? config.logType : config.category;
+ layout = layout || layouts.dummyLayout;
+ if(!config.fields) {
+ config.fields = {};
+ }
+ return function log(loggingEvent) {
+
+ /*
+ https://gist.github.com/jordansissel/2996677
+ {
+ "message" => "hello world",
+ "@version" => "1",
+ "@timestamp" => "2014-04-22T23:03:14.111Z",
+ "type" => "stdin",
+ "host" => "hello.local"
+ }
+ @timestamp is the ISO8601 high-precision timestamp for the event.
+ @version is the version number of this json schema
+ Every other field is valid and fine.
+ */
+
+ if (loggingEvent.data.length > 1) {
+ var secondEvData = loggingEvent.data[1];
+ for (var k in secondEvData) {
+ config.fields[k] = secondEvData[k];
+ }
+ }
+ config.fields.level = loggingEvent.level.levelStr;
+
+ var logObject = {
+ "@version" : "1",
+ "@timestamp" : (new Date(loggingEvent.startTime)).toISOString(),
+ "type" : config.logType ? config.logType : config.category,
+ "message" : layout(loggingEvent),
+ "fields" : config.fields
+ };
+ sendLog(udp, config.host, config.port, logObject);
+ };
+}
+
+function sendLog(udp, host, port, logObject) {
+ var buffer = new Buffer(JSON.stringify(logObject));
+ udp.send(buffer, 0, buffer.length, port, host, function(err, bytes) {
+ if(err) {
+ console.error(
+ "log4js.logstashUDP - %s:%p Error: %s", host, port, util.inspect(err)
+ );
+ }
+ });
+}
+
+function configure(config) {
+ var layout;
+ if (config.layout) {
+ layout = layouts.layout(config.layout.type, config.layout);
+ }
+ return logstashUDP(config, layout);
+}
+
+exports.appender = logstashUDP;
+exports.configure = configure;