控制台时间戳中的毫秒数似乎在node.js中不起作用

时间:2018-10-24 12:37:35

标签: javascript node.js timestamp

我正在尝试使用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.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重新开始。

根据{{​​3}},

“ l”是正确的毫秒格式,该格式链接到https://github.com/starak/node-console-stamp。我还尝试使用“ L”,甚至手动打印新日期的getMilliseconds(),如下所示:

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

我仍然得到一个通过日志增长的值。

有人见过这种情况吗?您知道如何获取合理的毫秒值吗?

1 个答案:

答案 0 :(得分:0)

您正在以某种模式打印邮件,可能使用了您在评论中提到的setInterval

您首先打印2条连续的日志消息,然后等待5秒钟并打印2条新消息。因此,毫秒将以升序显示。 打印第一条消息后,下一个函数执行将花费2毫秒,因此下一个时间戳为milliseconds+2,然后等待5秒钟和5毫秒以上的执行时间(可能略有不同),因此下一个时间戳为milliseconds + 2 + 5000 + 5 ....等等。

库或您的代码没有错。