2016-06-13 9 views
0

ログレベル(つまりコンソールには何でもファイルへのエラーと警告のみ)に応じて、コンソールとファイルに同時に書き込むためにカスタムwinstonロガーを使用しています。なんらかの理由で、コンソールに書き込むことはできませんが、何もファイルに書き込まれませんが、私はエラーを呼び出します。 Winstonは単一の転送にのみ書き込みます

は当初、私は、私は、セットアップ winstonがファイルにではなく、コンソールに書いたことを持っていたものの error = 9まで行く trace = 0から始めて、レベルの順序を台無しに。私は winstonは1つのトランスポートに書き込んだ後に停止すると仮定していますか?

私の設定はこのように書きます:

import winston from 'winston'; 

const logger = new (winston.Logger)({ 
    levels: { 
    trace: 9, 
    input: 8, 
    verbose: 7, 
    prompt: 6, 
    debug: 5, 
    info: 4, 
    data: 3, 
    help: 2, 
    warn: 1, 
    error: 0, 
    }, 
    colors: { 
    trace: 'magenta', 
    input: 'grey', 
    verbose: 'cyan', 
    prompt: 'grey', 
    debug: 'blue', 
    info: 'green', 
    data: 'grey', 
    help: 'cyan', 
    warn: 'yellow', 
    error: 'red', 
    }, 
}); 

logger.add(winston.transports.Console, { 
    level: 'trace', 
    prettyPrint: true, 
    colorize: true, 
    silent: false, 
    timestamp: false, 
}); 

logger.add(winston.transports.File, { 
    prettyPrint: false, 
    level: 'error', 
    silent: false, 
    colorize: true, 
    timestamp: true, 
    filename: `${__dirname}/../logs/error.log`, 
    maxsize: 40000, 
    maxFiles: 10, 
    json: false, 
}); 

答えて

0

私が各トランスポートに名前を与えなければならなかったようです。私。

logger.add(winston.transports.Console, { 
    name: 'trace-console', 
    // ... 
}); 

logger.add(winston.transports.File, { 
    name: 'error-file', 
    // ... 
}); 

これは期待どおりに機能するようです。

編集:何らかの理由で、両方ともcolorizeオプションをtrueに設定する必要があります(?)。

関連する問題