"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GlobalLogger = void 0; const pino_logger_1 = require("civkit/pino-logger"); const tsyringe_1 = require("tsyringe"); const node_worker_threads_1 = require("node:worker_threads"); const async_context_1 = require("civkit/async-context"); const levelToSeverityMap = { trace: 'DEFAULT', debug: 'DEBUG', info: 'INFO', warn: 'WARNING', error: 'ERROR', fatal: 'CRITICAL', }; let GlobalLogger = class GlobalLogger extends pino_logger_1.AbstractPinoLogger { constructor() { super(...arguments); this.loggerOptions = { level: 'debug', base: { tid: node_worker_threads_1.threadId, } }; } init() { if (process.env['NODE_ENV']?.startsWith('prod')) { super.init(process.stdout); } else { const PinoPretty = require('pino-pretty').PinoPretty; super.init(PinoPretty({ singleLine: true, colorize: true, messageFormat(log, messageKey) { return `${log['tid'] ? `[${log['tid']}]` : ''}[${log['service'] || 'ROOT'}] ${log[messageKey]}`; }, })); } this.emit('ready'); } log(...args) { const [levelObj, ...rest] = args; const severity = levelToSeverityMap[levelObj?.level]; const traceCtx = (0, async_context_1.getTraceCtx)(); const patched = { ...levelObj, severity }; const traceId = traceCtx?.googleTraceId || traceCtx?.traceId; if (traceId && process.env['GCLOUD_PROJECT']) { patched['logging.googleapis.com/trace'] = `projects/${process.env['GCLOUD_PROJECT']}/traces/${traceId}`; } return super.log(patched, ...rest); } }; exports.GlobalLogger = GlobalLogger; exports.GlobalLogger = GlobalLogger = __decorate([ (0, tsyringe_1.singleton)() ], GlobalLogger); const instance = tsyringe_1.container.resolve(GlobalLogger); exports.default = instance; //# sourceMappingURL=logger.js.map