Search code examples
node.jstypescriptwinston

Winston not Logging to console in typescript


I am confused by winston. I am using the following typescript code to log onto the console in my *.ts file:

import { Logger, LoggerInstance } from "winston";

const logger:LoggerInstance = new Logger();
logger.info('Now my debug messages are written to the console!');

the console remains empty. There are no compile errors or other issues.

At the same time the following works fine:

const wnstn = require("winston");
wnstn.info('Finally my messages are written to the console!');

Does anyone have a clue why that is the case? Do I have to configure the Logger differently? How would I use the defaults I get from the second example?


Solution

  • When you instantiate a new Logger instance you need to provide it a list of transports so it knows where to send the logs:

    var logger = new (winston.Logger)({
      transports: [
        new (winston.transports.Console)(),
        new (winston.transports.File)({ filename: 'somefile.log' })
      ]
    });