Я пытаюсь использовать 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);
}
Я все еще получаю значение, которое растет по журналам.
Кто-нибудь видел, как это происходит? Вы знаете, как получить разумное значение в миллисекундах?
@mark Я думаю, они имеют в виду, что они странно последовательны. Если вы посмотрите на журнал, они в некотором роде выглядят отсортированными. Что, вероятно, ничего не значит само по себе, а может быть просто странным совпадением.
@FedericoklezCulloca Теперь я это вижу, это действительно странно.
@ monday-to-friday Это относится ко всему файлу журнала?
@Mark, да, весь журнал так и продолжается. Достигается 999 (примерно), а затем начинается с 0 (примерно).
@Frederico klez Culloca, это на самом деле не просто совпадение - так продолжается веками.
Я предлагаю вам спросить у сопровождающего библиотеки, потому что это больше похоже на ошибку, чем на проблему с вашим кодом.
Вызываете ли вы эти функции в обратном вызове setInterval / setTimeout?
@barbsan да, они звонят каждые 5 секунд. Это что-нибудь объясняет?
@FedericoklezCulloca, но я получаю тот же результат, распечатав значение в миллисекундах для только что созданного объекта Date :( что означает, что это проблема не только с этой конкретной библиотекой, верно?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


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