Newer
Older
PixelPaintWar / apps / server / src / logging / logger.ts
/**
 * logger
 * 共通ログ出力で利用するイベントログ関数を提供する
 */
import type { LogPayloadByScope } from "./contracts/payloadByScope";
import type { LogScope } from "./constants/scopes";

type LoggerPayload = {
  socketId?: string;
  roomId?: string;
  [key: string]: unknown;
};

/** スコープ名とイベント情報を標準出力へ記録する */
export const logEvent = <
  TScope extends LogScope,
>(
  scope: TScope,
  payload: LoggerPayload & LogPayloadByScope[TScope]
) => {
  console.log(`[${scope}]`, payload);
};