123456789101112131415161718192021222324252627282930313233343536373839 |
- import { createEventLogger, createLogger } from "@shared/common/logging";
- import { isHttpError } from "@shared/common/async_utils";
- import { HTTPError } from "got/dist/source";
- import { MongoDB } from "winston-mongodb";
- import { QueryOptions } from "winston";
- // Workaround for https://github.com/winstonjs/winston-mongodb/issues/168
- MongoDB.prototype.normalizeQuery = (opts?: Record<string, unknown>) : QueryOptions => {
- const result = opts ?? {};
- result.rows = result.rows ?? result.limit ?? 10;
- result.start = result.start ?? 0;
- result.until = result.until ?? new Date();
- if (typeof result.until !== "object") {
- result.until = new Date(result.until as unknown as Date);
- }
- result.from = result.from ?? ((result.until as unknown as number) - (24 * 60 * 60 * 1000));
- if (typeof result.from !== "object") {
- result.from = new Date(result.from as unknown as Date);
- }
- result.order = result.order ?? "desc";
- return result as unknown as QueryOptions;
- };
- export const logger = createLogger({
- errorHandler: (reason) => {
- if (isHttpError<HTTPError>(reason)) {
- return new Error(`HTTPError: ${reason.request.requestUrl} failed because ${reason}\nStack trace: ${reason.stack}`);
- }
- return undefined;
- },
- });
- export const eventLogger = createEventLogger({
- host: process.env.MONGO_DB_HOST ?? "",
- password: process.env.MONGO_DB_USERNAME ?? "",
- username: process.env.MONGO_DB_PASSWORD ?? "",
- name: "WEB",
- });
|