| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- "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.colouredLayout;
- if(!config.fields) {
- config.fields = {};
- }
- return function(loggingEvent) {
- var logMessage = layout(loggingEvent);
- var fields = {};
- for(var i in config.fields) {
- fields[i] = config.fields[i];
- }
- fields['level'] = loggingEvent.level.levelStr;
- var logObject = {
- '@timestamp': (new Date(loggingEvent.startTime)).toISOString(),
- type: type,
- message: logMessage,
- fields: 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;
|