2017-01-25 37 views
3

我被winston弄糊塗了。我使用下面的代碼打字稿登錄到控制檯在我*的.ts文件:Winston沒有登錄到打字機的控制檯

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!'); 

有沒有人有一個線索,爲什麼是這樣?我必須以不同方式配置記錄器嗎?我將如何使用從第二個例子中得到的默認值?

回答

2

當你實例化你需要,所以它知道向它提供的傳輸器列表在哪裏發送日誌一個新的記錄器實例:

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

謝謝..重要提示 – wzr1337

3

好,

感謝@idbehold的暗示,我發現,一個普通而簡單:

import * as winston from "winston"; 

winston.info('Now my debug messages are written to the console!'); 

作品爲默認記錄..

3

這是打印溫斯頓的打字方式。

首先,確保你已經安裝了打字:
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.<...>之前。