私はウィンストンに混乱しています。次のTypeScriptコードを使用して、*。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!');
誰かがそれが事実である理由の手がかりを持っていますか?ロガーを別の方法で構成する必要がありますか? 2番目の例から取得したデフォルトをどのように使用しますか?
新しいLoggerインスタンスをインスタンス化するときは、ログの送信先がわかるように、トランスポートのリストを提供する必要があります。
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)(),
new (winston.transports.File)({ filename: 'somefile.log' })
]
});
これは、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' })
]
});
一般的には、以前はwinston.<...>
を使用せずに、すべての定数と型をインポートできます。
上手、
@idbeholdのヒントのおかげで、わかりやすく簡単であることがわかりました。
import * as winston from "winston";
winston.info('Now my debug messages are written to the console!');
デフォルトのロガーで動作します。