我在共享实用程序类之一中有一个方法。它只是在调用时记录一个事件:
public static newEvent(message: string): void {
const t_option = {
hour: '2-digit',
minute: '2-digit',
fractionalSecondDigits: '3',
hour12: false,
} as Intl.DateTimeFormatOptions;
const now = new Date().toLocaleTimeString([], t_option);
const formattedMessage = `[${now}] ${message}`;
this.eventService.publish(formattedMessage);
console.log(formattedMessage);
}
这种类型的日志类似于控制台(并保存在其他地方的文件日志中):
[15:01:13.929] initialising...
[15:01:50.588] connecting to websockets...
[15:02:06.384] websockets connected (3)
[15:04:02.992] fetching weather data...
角度应用程序中的几乎所有服务和组件都调用此日志方法。有很多电话。繁忙的一天大约每秒 10-12 次。 我的问题是我正在为每条记录的消息创建一个
new Date()
。我希望时间戳采用人类可读的格式,但我想知道创建新的日期对象是否是最好的方法?
如果我在方法之外创建一个静态日期,则时间戳不是实时的,就像这样,每次日期/时间都将与创建时相同。如果使用
Date.now()
代替,我会得到 unix 时间戳,但是,它不是人类可读的。
所以我想我的问题是,有没有更好的方法可以在不创建大量新对象的情况下完成我想要的事情?还是这件事足够微不足道,我不必担心?