Миллисекунды в консоли-штампе не работают в node.js - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь использовать консольный штамп для входа в файл node.js, например так:

require('console-stamp')(console, {
    datePrefix:'',
    dateSuffix: '',
    pattern: 'dd/mm/yyyy HH:MM:ss.l'
});
var log = {
        info: function (info) {
            console.info(info);
        },
        warning:function (warning) {
            console.warn(warning);
        },
        error:function (error) {
            console.error(error);
        },
        debug:function (debug) {
            console.log(debug);
        }
};
module.exports = log

Однако я вижу, что значение в миллисекундах увеличивается в журналах через вторые границы, например так:

24/10/2018 12:21:40.673 [LOG]    log
24/10/2018 12:21:40.675 [LOG]    log
24/10/2018 12:21:45.680 [LOG]    log
24/10/2018 12:21:45.688 [LOG]    log
24/10/2018 12:21:50.692 [LOG]    log
24/10/2018 12:21:50.694 [LOG]    log
24/10/2018 12:21:55.699 [LOG]    log
24/10/2018 12:21:55.702 [LOG]    log
24/10/2018 12:22:00.706 [LOG]    log
24/10/2018 12:22:00.707 [LOG]    log
24/10/2018 12:22:05.711 [LOG]    log
24/10/2018 12:22:05.715 [LOG]    log

Затем значение «миллисекунды» становится равным 999 и перезапускается с 0.

«l» - это правильный формат для миллисекунд в соответствии с https://github.com/starak/node-console-stamp,, который связываетhttp://blog.stevenlevithan.com/archives/date-time-format. Я также пытался использовать «L» и даже вручную печатать getMilliseconds () новой даты, например:

debug: function (debug) {
   var currentTime = new Date();
   var ms = currentTime.getMilliseconds();
   console.log(ms + " !!!! " + debug);
}

Я все еще получаю значение, которое растет в журналах.

Кто-нибудь видел это?Вы знаете, как получить разумное значение в миллисекундах?

1 Ответ

0 голосов
/ 24 октября 2018

Вы печатаете свои сообщения в виде шаблона, вероятно, используя setInterval, как вы упомянули в комментариях.

Сначала вы печатаете 2 последовательных сообщения журнала, затем ждете 5 секунд и печатаете 2 новых сообщения.Из-за этого миллисекунды будут отображаться в порядке возрастания.После того, как вы напечатаете первое сообщение, для выполнения следующей функции потребуется 2 миллисекунды, поэтому ваша следующая отметка времени будет milliseconds+2, затем вы будете ждать 5 секунд и еще 5 миллисекунд для времени выполнения (которое может незначительно отличаться), поэтомуследующая отметка времени - milliseconds + 2 + 5000 + 5 .... и т. д.

Нет ничего плохого в библиотеке или вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...