1

モカでテストするcygwinにnode.jsプロジェクトがあります。

私のロガーはlog4jsです。

log4js をファイルに書き込むためのアペンダーがありますが、必要に応じて正確に書き込む方法がわかりません。

必需品:

  • mocha が実行されるたびに異なるファイル (mocha が古いログ ファイルを上書きしても問題ありません)
  • Unix の改行

あった方がよい:

  • ファイルに色のエンコーディングはありません ( mocha を で実行するとこれを回避できます-Cが、理想的には に何かがあるでしょうlog4js-config.js。)

どうすればいいですか?


私の現在の設定は次のとおりです。

私のlog4js-config.js

var log4js = require('log4js');

var log4js_config = {
    "appenders": [{
        "type": "console",
        "layout": {
            "type": "pattern",
            "pattern": "%[%d{yyyy-MM-ddThh:mm:ss.SSS} [pid=%x{pid}] %p %c -%] %m",
            "tokens": {pid: function(){return process.pid;}}
        }
    },{
        "type": "file",
        "filename": "jxg_log.log",
        "layout": {
            "type": "pattern",
            "pattern": "%d{yyyy-MM-ddThh:mm:ss.SSS} [pid=%x{pid}] %p %c - %m",
            "tokens": {pid: function(){return process.pid;}}
        }
    }],
    replaceConsole: true
};

log4js.configure(log4js_config, {});
exports.logging = log4js;

私のテストファイルは次のとおりです。

var assert = require("assert");

var logger = require('../src/log4js-config').logging.getLogger('Mocha-Test');

describe('Array', function(){
  describe('#indexOf()', function(){
    it('should return -1 when the value is not present', function(){
      logger.debug("logger debug line 1");
      assert.equal(-1, [1,2,3].indexOf(5));
      assert.equal(-1, [1,2,3].indexOf(0));
      logger.debug("logger debug last line");
    })
  })
})

(この質問の目的のために、テスト対象のコードはありません。mocha を で実行し./node_modules/mocha/bin/mochaます。)

出力されるログファイルは次のとおりです。

2014-11-24T13:45:00.012 [pid=90652] INFO console - %m
2014-11-24T13:45:00.018 [pid=90652] INFO console - %m
2014-11-24T13:45:00.019 [pid=90652] INFO console -   Array
2014-11-24T13:45:00.020 [pid=90652] INFO console -     #indexOf()
2014-11-24T13:45:00.021 [pid=90652] DEBUG Mocha-Test - logger debug line 1
2014-11-24T13:45:00.021 [pid=90652] DEBUG Mocha-Test - logger debug last line
2014-11-24T13:45:19.090 [pid=90180] INFO console - %m
2014-11-24T13:45:19.093 [pid=90180] INFO console - %m
2014-11-24T13:45:19.095 [pid=90180] INFO console -   Array
2014-11-24T13:45:19.095 [pid=90180] INFO console -     #indexOf()
2014-11-24T13:45:19.096 [pid=90180] DEBUG Mocha-Test - logger debug line 1
2014-11-24T13:45:19.096 [pid=90180] DEBUG Mocha-Test - logger debug last line
2014-11-24T13:50:13.716 [pid=88476] INFO console - %m
2014-11-24T13:50:13.720 [pid=88476] INFO console - [0m[0m
2014-11-24T13:50:13.721 [pid=88476] INFO console - [0m  Array[0m
2014-11-24T13:50:13.722 [pid=88476] INFO console - [0m    #indexOf()[0m
2014-11-24T13:50:13.722 [pid=88476] DEBUG Mocha-Test - logger debug line 1
2014-11-24T13:50:13.723 [pid=88476] DEBUG Mocha-Test - logger debug last line

ここで 3 つのモカが実行されていることに注意してください。3 回目は-C、色のエンコードを表示するために を省略しました。
質問に直接行末を表示することはできませんが、これがあります:

$ file jxg_log.log
jxg_log.log: ASCII text, with CRLF line terminators, with escape sequences

繰り返しになりますが、その後の実行でログ ファイルを上書きし、UNIX の改行を出力し、カラー コードを抑制するにはどうすればよいでしょうか。

4

0 に答える 0