Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / log4js / lib / appenders / logstashUDP.js
1 "use strict";
2 var layouts = require('../layouts')
3 , dgram = require('dgram')
4 , util = require('util');
5
6 function logstashUDP (config, layout) {
7   var udp = dgram.createSocket('udp4');
8   var type = config.logType ? config.logType : config.category;
9   layout = layout || layouts.dummyLayout;
10   if(!config.fields) {
11     config.fields = {};
12   }
13   return function log(loggingEvent) {
14
15     /*
16       https://gist.github.com/jordansissel/2996677
17       {
18         "message"    => "hello world",
19         "@version"   => "1",
20         "@timestamp" => "2014-04-22T23:03:14.111Z",
21         "type"       => "stdin",
22         "host"       => "hello.local"
23       }
24       @timestamp is the ISO8601 high-precision timestamp for the event.
25       @version is the version number of this json schema
26       Every other field is valid and fine.
27     */
28
29     if (loggingEvent.data.length > 1) {
30       var secondEvData = loggingEvent.data[1];
31       for (var k in secondEvData) {
32         config.fields[k] = secondEvData[k];
33       }
34     }
35     config.fields.level = loggingEvent.level.levelStr;
36
37     var logObject = {
38       "@version" : "1",
39       "@timestamp" : (new Date(loggingEvent.startTime)).toISOString(),
40       "type" : config.logType ? config.logType : config.category,
41       "message" : layout(loggingEvent),
42       "fields" : config.fields
43     };
44     sendLog(udp, config.host, config.port, logObject);
45   };
46 }
47
48 function sendLog(udp, host, port, logObject) {
49   var buffer = new Buffer(JSON.stringify(logObject));
50   udp.send(buffer, 0, buffer.length, port, host, function(err, bytes) {
51     if(err) {
52       console.error(
53         "log4js.logstashUDP - %s:%p Error: %s", host, port, util.inspect(err)
54       );
55     }
56   });
57 }
58
59 function configure(config) {
60   var layout;
61   if (config.layout) {
62     layout = layouts.layout(config.layout.type, config.layout);
63   }
64   return logstashUDP(config, layout);
65 }
66
67 exports.appender = logstashUDP;
68 exports.configure = configure;