Comments (7)
fluentSender.end()
will close socket immediately.
If you want to wait processing the last message, you can use requireAckResponse
option and fluentSender.end("label", {"message": "some message"})
.
from fluent-logger-node.
@nikhilkakade2108 Please read winston section in README.md.
from fluent-logger-node.
I added requireAckResponse: true in config, but it is not working for me. The problem here is, I cannot use support.winstonTransport() due to some limitations (I need to add lambdaname by default in every log statement). Is there any other way to end the fluentdSender with all logs flushed at back-end and without using setTimeout()?
The question I have is, what is difference between using support.winstonTransport() and createFluentSender(), because former works properly without any setTimeout()?
calling emit() manually for fluentdSender and ending the connection doesn't send a single log in backend.
from fluent-logger-node.
Hmm, your code in first comment is not same as sample code in README.md.
It seems that you don't use winston transport for fluent-logger in your code above.
Which do you want to use fluent-logger's winston support or raw FluentSender?
Could you show me minimal reproducible code?
I could not imagine your situation enough.
from fluent-logger-node.
yes I am using raw FluentSender. Please refer this code.
var winston=require('winston');
var logger = new (winston.Logger)({
transports: [new (winston.transports.Console)()]
});
var fluentdSender = require('fluent-logger').createFluentSender('myTag', {
host: 'localhost',
port: 24224,
timeout: 3.0,
reconnectInterval: 600000
});
logger.on('logging', (transport, level, message, meta) => {
var data={"message":message,"requestId":"21081","environment":environment,"level":level};
fluentdSender.emit('',data);
if (meta.end) {
fluentdSender.end();
}
});
logger.info('start logging');
logger.info('something something');
logger.info('end logging',{end:true});
I cannot see any logs at Fluentd end with above code.
If I add setTimeout(()=>{fluentdSender.end()},1000) ; it works.
from fluent-logger-node.
fluendSender.end()
has same interface with fluentSender.emit()
.
fluentSender.end()
with no arguments will shutdown fluentSender
instance immediately.
We can wait ack response from server using following snippet:
fluentSender.end("label", {"message": "Good bye!"});
from fluent-logger-node.
writting fluentSender.end("label", {"message": "Good bye!"});
worked for me.
Thanks okkez. Closing the issue.
from fluent-logger-node.
Related Issues (20)
- Logger write to socket after it died HOT 1
- A small team looking to iterate on fluent logger node lib HOT 1
- [BUG] Logging multiple tags in PackedForward corrupts packets!
- [BUG] Emit callbacks are re-called when error with ack from Fluent
- error TS2307: Cannot find module 'winston-transport'. HOT 3
- Sender has no support in TypeScript HOT 2
- EnableReconnect not available in winston transport
- App doesn't close when connection failed. HOT 1
- WinstonTransport types don't work anymore after latest release HOT 1
- Trouble with millisecond (or any sub-second) resolution (outdated protocol implementation?)
- Buffering the logs being send to fluentd when fluentd is not available
- Error events take too much time to emit when fluentd is not available HOT 2
- Failed to call _flushSendQueue() during frequent log emit HOT 1
- Sending via udp HOT 1
- Cannot find module 'fluent-logger'
- Cannot read property 'end' of undefined HOT 2
- fluentd winston color formatting doesnt work at transport level HOT 1
- Lambda timeout occurs when using the sender.end() function with setTimeout
- [PROPOSAL] Deprecate in favor of new Fluent Node Logger HOT 1
- MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 unpipe listeners added to [FluentTransport]. Use emitter.setMaxListeners() to increase limit
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fluent-logger-node.