aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared/logger.ts
blob: f3c5d45db63291334d2873eed9aabe651785bc8d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import winston from "winston";

import serverConfig from "./config";

const logger = winston.createLogger({
  level: serverConfig.logLevel,
  format: winston.format.combine(
    winston.format.timestamp(),
    ...(serverConfig.logNoColor ? [] : [winston.format.colorize()]),
    winston.format.printf(
      (info) => `${info.timestamp} ${info.level}: ${info.message}`,
    ),
  ),
  transports: [new winston.transports.Console()],
});

export function throttledLogger(periodMs: number) {
  let lastLogTime = 0;

  return (level: string, message: string) => {
    const now = Date.now();
    if (now - lastLogTime >= periodMs) {
      lastLogTime = now;
      logger.log(level, message);
    }
  };
}

export default logger;