Ejemplo n.º 1
0
module.exports = function createLogger({ name, output, host, port }) {
  if (!name) {
    throw new Error('Please provide a name');
  }

  let stream = process.stdout;

  if (output === 'td-agent-forward') {
    const sender = fluentL.createFluentSender('', {
      host,
      port,
      timeout: 3.0,
      levelTag: false,
      reconnectInterval: 600000,
    });
    stream = sender.toStream('application.logs');
  }

  const logger = bunyan.createLogger({
    name,
    streams: [{ stream }],
    serializers: bunyan.stdSerializers,
  });

  logger._info = logger.info;
  logger.info = function(data, msg) {
    data.timestamp = new Date();
    return this._info(data, msg);
  };

  return logger;
};
Ejemplo n.º 2
0
Connection.prototype._initSender = function(wait) {
  this._sendingMessages = {};
  var options = { host: this.hostName,
                  port: this.port };
  var sender = fluent.createFluentSender(this.tag, options);
  this._sender = sender;
  this._sender.on('error', (function(error) {
    var errorMessage =
      'An error is occurred in protocol adapter: ' +
      '[' + error.name + '] ' + error.message;
    var ids = Object.keys(this._sendingMessages);
    if (ids.length == 0) {
      this._logger.error(LOG_PREFIX + errorMessage, error);
    } else {
      ids.forEach(function(id) {
        var sendingMessage = this._sendingMessages[id];
        var message = {
          inReplyTo: id,
          statusCode: 500,
          type: sendingMessage.type + '.result',
          body: {
            name: 'ProtocolAdapterError',
            message: errorMessage,
            detail: error
          }
        }
        this.emit('reply:' + id, message.statusCode, message);
      }.bind(this));
      this._sendingMessages = {};
    }
  }).bind(this));
};
Ejemplo n.º 3
0
Connection.prototype._initSender = function(wait) {
  var options = { host: this._params.hostName || DEFAULT_FLUENT_HOST_NAME,
                  port: this._params.port || DEFAULT_FLUENT_PORT };
  var sender = fluent.createFluentSender(this.tag, options);
  this._sender = sender;
  this._sender.on('error', (function(error) {
    this.emit('error', error);
  }).bind(this));
};
Ejemplo n.º 4
0
module.exports = internals.GoodFluent = function GoodFluent(label, options) {
    var settings;

    Hoek.assert(this instanceof internals.GoodFluent, 'GoodFluent must be created with new');
    Hoek.assert(typeof label === 'string', 'label must be a string');

    options = Hoek.clone(options || {});
    settings = Hoek.applyToDefaults(internals.defaults, options);

    this._sender = Fluent.createFluentSender(label, settings);
    this._sender.on('error', Function.prototype);

    GoodReporter.call(this, settings);
};
Ejemplo n.º 5
0
    constructor(options) {
        super(options);
        this.name = "WinstonFluentd";
        options = options || {};

        if (typeof options.tag !== "string") {
            throw new Error("options.tag<String> is required");
        }

        this._fluent = createFluentSender(options.tag, Object.assign({
           host: "localhost",
           port: 24224,
           timeout: 3.0
        }, options.fluentd));

        this._fluent.on("error", (err) => {
            console.error("Fluent error: " + err.message);
        });

    }