Миллисекунды в console-stamp, похоже, не работают в node.js

Я пытаюсь использовать console-stamp для входа в 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.info(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.info(ms + " !!!! " + debug);
}

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

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

grows through the logs что вы имеете в виду под этим? В секунде есть 1000 миллисекунды, поэтому значение идет от 0 к 999 и обратно к 0.
Mark 24.10.2018 14:40

@mark Я думаю, они имеют в виду, что они странно последовательны. Если вы посмотрите на журнал, они в некотором роде выглядят отсортированными. Что, вероятно, ничего не значит само по себе, а может быть просто странным совпадением.

Federico klez Culloca 24.10.2018 14:42

@FedericoklezCulloca Теперь я это вижу, это действительно странно.

Mark 24.10.2018 14:45

@ monday-to-friday Это относится ко всему файлу журнала?

Mark 24.10.2018 14:45

@Mark, да, весь журнал так и продолжается. Достигается 999 (примерно), а затем начинается с 0 (примерно).

Monday to Friday 24.10.2018 14:47

@Frederico klez Culloca, это на самом деле не просто совпадение - так продолжается веками.

Monday to Friday 24.10.2018 14:48

Я предлагаю вам спросить у сопровождающего библиотеки, потому что это больше похоже на ошибку, чем на проблему с вашим кодом.

Federico klez Culloca 24.10.2018 15:32

Вызываете ли вы эти функции в обратном вызове setInterval / setTimeout?

barbsan 24.10.2018 15:34

@barbsan да, они звонят каждые 5 секунд. Это что-нибудь объясняет?

Monday to Friday 24.10.2018 15:49

@FedericoklezCulloca, но я получаю тот же результат, распечатав значение в миллисекундах для только что созданного объекта Date :( что означает, что это проблема не только с этой конкретной библиотекой, верно?

Monday to Friday 24.10.2018 15:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
10
301
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

Другие вопросы по теме