Skip to content

Instantly share code, notes, and snippets.

@trasa
Created February 23, 2019 19:39
Show Gist options
  • Save trasa/f4c93846d077a740387a630f01a1d4e8 to your computer and use it in GitHub Desktop.
Save trasa/f4c93846d077a740387a630f01a1d4e8 to your computer and use it in GitHub Desktop.
Example of trying to use winston and winston-es, demonstrating problems in a console app which terminates. see https://github.com/vanthome/winston-elasticsearch/issues/17
const winston = require('winston'); // 3.1.0
const winston_es = require('winston-elasticsearch'); // 0.7.7
const util = require('./lib/util.js');
var logger;
var transport;
// see https://github.com/vanthome/winston-elasticsearch/issues/17#issuecomment-463717315
winston_es.prototype.close = async function () {
console.log("closing winston_es");
await this.bulkWriter.flush();
this.bulkWriter.stop();
};
function setupLogging() {
console.log("setup logging");
const transportOps = {
'clientOpts': {
'host': 'http://localhost:9200'
}
};
transport = new winston_es(transportOps);
logger = winston.createLogger({
transports: [
new winston.transports.Console({
format: winston.format.simple()
}),
transport
]
});
logger.on('finish', () => {
console.log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX logger finished");
});
}
function doWork() {
console.log("begin doing work!");
for (let i = 0; i < 100; i++) {
logger.info("writing data " + i);
}
console.log("work done!");
}
function main() {
setupLogging();
doWork();
logger.close();
}
main();
/* Result:
$ node winstondemo.js
setup logging
begin doing work!
info: writing data 0
info: writing data 1
info: writing data 2
info: writing data 3
info: writing data 4
info: writing data 5
info: writing data 6
info: writing data 7
info: writing data 8
info: writing data 9
info: writing data 10
info: writing data 11
info: writing data 12
info: writing data 13
info: writing data 14
info: writing data 15
work done!
closing winston_es
[winston] Attempt to write logs with no transports {"message":"writing data 32","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 33","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 34","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 35","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 36","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 37","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 38","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 39","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 40","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 41","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 42","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 43","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 44","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 45","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 46","level":"info"}
[winston] Attempt to write logs with no transports {"message":"writing data 47","level":"info"}
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment