首页 文章

Winston没有在打字稿中登录到控制台

提问于
浏览
3

我对温斯顿很困惑 . 我使用以下打字稿代码登录我的* .ts文件中的控制台:

import { Logger, LoggerInstance } from "winston";

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

控制台仍然是空的 . 没有编译错误或其他问题 .

同时以下工作正常:

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

有没有人知道为什么会这样?我是否必须以不同方式配置Logger?我如何使用第二个例子中的默认值?

3 回答

  • 3

    当您实例化一个新的Logger实例时,您需要为它提供一个传输列表,以便它知道在哪里发送日志:

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

    这是导入Winston的Typescript方式 .

    首先,请确保您已安装了输入:
    npm i -D @types/winston

    然后,在你的script.ts中

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

    在genral中,您可以在不使用 winston.<...> 之前导入所有常量和类型 .

  • 5

    好,

    感谢@idbehold的暗示,我发现简单明了:

    import * as winston from "winston";
    
    winston.info('Now my debug messages are written to the console!');
    

    适用于默认 Logger ..

相关问题