Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle connection error at start an application #116

Closed
wants to merge 3 commits into from

Conversation

okkez
Copy link
Contributor

@okkez okkez commented Oct 26, 2018

Fix #115

okkez added 3 commits October 26, 2018 14:14
Signed-off-by: Kenji Okimoto <okimoto@clear-code.com>
Signed-off-by: Kenji Okimoto <okimoto@clear-code.com>
This change will reconnect to fluentd, but following error occurs
while reconnecting:

> logger-node/node_modules/fluent-logger/node_modules/readable-stream/lib/_stream_writable.js:491
>   cb();
>   ^
>
> TypeError: cb is not a function
>     at afterWrite (/logger-node/node_modules/fluent-logger/node_modules/readable-stream/lib/_stream_writable.js:491:3)
>     at onwrite (/logger-node/node_modules/fluent-logger/node_modules/readable-stream/lib/_stream_writable.js:483:7)
>     at WritableState.onwrite (/logger-node/node_modules/fluent-logger/node_modules/readable-stream/lib/_stream_writable.js:180:5)
>     at sender.emit (/logger-node/node_modules/fluent-logger/lib/winston.js:46:21)
>     at callbacks.forEach (/logger-node/node_modules/fluent-logger/lib/sender.js:431:23)
>     at Array.forEach (<anonymous>)
>     at _socket.write (/logger-node/node_modules/fluent-logger/lib/sender.js:430:19)
>     at afterWrite (_stream_writable.js:480:3)
>     at process._tickCallback (internal/process/next_tick.js:63:19)

See also nodejs/node#23895

Signed-off-by: Kenji Okimoto <okimoto@clear-code.com>
@okkez
Copy link
Contributor Author

okkez commented Oct 26, 2018

fluent.conf:

<source>
  @type forward
  port 24224
</source>

<match>
  @type stdout
</match>

115.js

const winston = require('winston');
const fluentNodeLogger = require('fluent-logger');

const fluentTransport = fluentNodeLogger.support.winstonTransport();
const options =       {
  host: 'localhost',
  port: 24224,
  timeout: 3.0,
  reconnectInterval: 20000 // 20sec
};

const logger = winston.createLogger({
  transports: [
    new fluentTransport('___specialcustomtesttag', options),
    new winston.transports.Console({
      format: winston.format.combine(
        winston.format.colorize(),
        winston.format.printf(info => `${info.level} ${new Date().toISOString()} ${info.message}`)
      ),
    }),
  ],
});

logger.on('error', (info, transport) => {
  transport.sender.emit();
  logger.add(transport);
  logger.log(info);
});

let n = 0
setInterval(() => {
  logger.info(`it works it works ${n++}`);
}, 1000);

Run following commands:

$ node 115.js

Another terminal (After a while after executing the above command):

$ fluentd -c fluent.conf

Will cause following error:

> logger-node/node_modules/fluent-logger/node_modules/readable-stream/lib/_stream_writable.js:491
>   cb();
>   ^
>
> TypeError: cb is not a function
>     at afterWrite (/logger-node/node_modules/fluent-logger/node_modules/readable-stream/lib/_stream_writable.js:491:3)
>     at onwrite (/logger-node/node_modules/fluent-logger/node_modules/readable-stream/lib/_stream_writable.js:483:7)
>     at WritableState.onwrite (/logger-node/node_modules/fluent-logger/node_modules/readable-stream/lib/_stream_writable.js:180:5)
>     at sender.emit (/logger-node/node_modules/fluent-logger/lib/winston.js:46:21)
>     at callbacks.forEach (/logger-node/node_modules/fluent-logger/lib/sender.js:431:23)
>     at Array.forEach (<anonymous>)
>     at _socket.write (/logger-node/node_modules/fluent-logger/lib/sender.js:430:19)
>     at afterWrite (_stream_writable.js:480:3)
>     at process._tickCallback (internal/process/next_tick.js:63:19)

@okkez okkez closed this Feb 19, 2019
@okkez okkez deleted the winston-setup-error-handler branch February 19, 2019 01:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant