diff --git a/apps/data-service/src/index.ts b/apps/data-service/src/index.ts index dc579c2..34def46 100644 --- a/apps/data-service/src/index.ts +++ b/apps/data-service/src/index.ts @@ -11,8 +11,8 @@ import { getLogger, setLoggerConfig, shutdownLoggers } from '@stock-bot/logger'; import { connectMongoDB } from '@stock-bot/mongodb-client'; import { connectPostgreSQL } from '@stock-bot/postgres-client'; import { QueueManager, type QueueManagerConfig } from '@stock-bot/queue'; -import { ProxyManager } from '@stock-bot/utils'; import { Shutdown } from '@stock-bot/shutdown'; +import { ProxyManager } from '@stock-bot/utils'; // Local imports import { exchangeRoutes, healthRoutes, queueRoutes } from './routes'; @@ -111,7 +111,7 @@ async function initializeServices() { }, enableScheduledJobs: true, }; - + queueManager = QueueManager.getOrInitialize(queueManagerConfig); logger.info('Queue system initialized'); @@ -127,7 +127,7 @@ async function initializeServices() { const { initializeProxyProvider } = await import('./providers/proxy.provider'); const { initializeQMProvider } = await import('./providers/qm.provider'); const { initializeWebShareProvider } = await import('./providers/webshare.provider'); - + initializeExchangeSyncProvider(); initializeIBProvider(); initializeProxyProvider(); @@ -139,12 +139,12 @@ async function initializeServices() { logger.debug('Creating scheduled jobs from registered handlers...'); const { handlerRegistry } = await import('@stock-bot/queue'); const allHandlers = handlerRegistry.getAllHandlers(); - + let totalScheduledJobs = 0; for (const [handlerName, config] of allHandlers) { if (config.scheduledJobs && config.scheduledJobs.length > 0) { const queue = queueManager.getQueue(handlerName); - + for (const scheduledJob of config.scheduledJobs) { // Include handler and operation info in job data const jobData = { @@ -152,7 +152,7 @@ async function initializeServices() { operation: scheduledJob.operation, ...(scheduledJob.payload || {}), }; - + // Build job options from scheduled job config const jobOptions = { priority: scheduledJob.priority, @@ -161,7 +161,7 @@ async function initializeServices() { immediately: scheduledJob.immediately, }, }; - + await queue.addScheduledJob( scheduledJob.operation, jobData, @@ -174,7 +174,7 @@ async function initializeServices() { operation: scheduledJob.operation, cronPattern: scheduledJob.cronPattern, immediately: scheduledJob.immediately, - priority: scheduledJob.priority + priority: scheduledJob.priority, }); } } @@ -231,7 +231,7 @@ shutdown.onShutdown(async () => { try { const { disconnectMongoDB } = await import('@stock-bot/mongodb-client'); const { disconnectPostgreSQL } = await import('@stock-bot/postgres-client'); - + await disconnectMongoDB(); await disconnectPostgreSQL(); logger.info('Database connections closed'); @@ -243,7 +243,7 @@ shutdown.onShutdown(async () => { shutdown.onShutdown(async () => { try { await shutdownLoggers(); - process.stdout.write('Data service loggers shut down\n'); + // process.stdout.write('Data service loggers shut down\n'); } catch (error) { process.stderr.write(`Error shutting down loggers: ${error}\n`); } diff --git a/apps/data-sync-service/src/index.ts b/apps/data-sync-service/src/index.ts index 0079b17..b175564 100644 --- a/apps/data-sync-service/src/index.ts +++ b/apps/data-sync-service/src/index.ts @@ -169,7 +169,7 @@ shutdown.onShutdown(async () => { shutdown.onShutdown(async () => { try { await shutdownLoggers(); - process.stdout.write('Data sync service loggers shut down\n'); + // process.stdout.write('Data sync service loggers shut down\n'); } catch (error) { process.stderr.write(`Error shutting down loggers: ${error}\n`); } diff --git a/apps/web-api/src/index.ts b/apps/web-api/src/index.ts index 5682bc0..e4b5f3d 100644 --- a/apps/web-api/src/index.ts +++ b/apps/web-api/src/index.ts @@ -8,9 +8,9 @@ import { getLogger, setLoggerConfig, shutdownLoggers } from '@stock-bot/logger'; import { createAndConnectMongoDBClient, MongoDBClient } from '@stock-bot/mongodb-client'; import { createAndConnectPostgreSQLClient, PostgreSQLClient } from '@stock-bot/postgres-client'; import { Shutdown } from '@stock-bot/shutdown'; -// Import routes import { exchangeRoutes } from './routes/exchange.routes'; import { healthRoutes } from './routes/health.routes'; +// Import routes import { setMongoDBClient, setPostgreSQLClient } from './clients'; // Initialize configuration with automatic monorepo config inheritance @@ -160,7 +160,7 @@ shutdown.onShutdown(async () => { shutdown.onShutdown(async () => { try { await shutdownLoggers(); - process.stdout.write('Web API loggers shut down\n'); + // process.stdout.write('Web API loggers shut down\n'); } catch (error) { process.stderr.write(`Error shutting down loggers: ${error}\n`); } diff --git a/libs/logger/src/logger.ts b/libs/logger/src/logger.ts index e14c87f..b0c0f83 100644 --- a/libs/logger/src/logger.ts +++ b/libs/logger/src/logger.ts @@ -9,14 +9,14 @@ */ import pino from 'pino'; -import type { LogContext, LogLevel, LogMetadata, LoggerConfig } from './types'; +import type { LogContext, LoggerConfig, LogLevel, LogMetadata } from './types'; // Simple cache for logger instances const loggerCache = new Map(); // Global config that can be set let globalConfig: LoggerConfig = { - logLevel: 'info', // Default to info, but trace and fatal are supported + logLevel: 'info', // Default to info, but trace and fatal are supported logConsole: true, logFile: false, logFilePath: './logs', @@ -39,7 +39,7 @@ export function setLoggerConfig(config: LoggerConfig): void { */ function createTransports(serviceName: string, config: LoggerConfig = globalConfig): any { const targets: any[] = []; - + // Console transport if (config.logConsole) { targets.push({ @@ -82,12 +82,14 @@ function createTransports(serviceName: string, config: LoggerConfig = globalConf environment: config.environment || 'development', }, ignore: 'childName', - ...(config.lokiUser && config.lokiPassword ? { - basicAuth: { - username: config.lokiUser, - password: config.lokiPassword, - }, - } : {}), + ...(config.lokiUser && config.lokiPassword + ? { + basicAuth: { + username: config.lokiUser, + password: config.lokiPassword, + }, + } + : {}), }, }); } @@ -294,7 +296,11 @@ export class Logger { /** * Main factory function */ -export function getLogger(serviceName: string, context?: LogContext, config?: LoggerConfig): Logger { +export function getLogger( + serviceName: string, + context?: LogContext, + config?: LoggerConfig +): Logger { return new Logger(serviceName, context, config); } @@ -321,8 +327,8 @@ export async function shutdownLoggers(): Promise { try { await Promise.allSettled(flushPromises); - // eslint-disable-next-line no-console - console.log('All loggers flushed successfully'); + + // console.log('All loggers flushed successfully'); } catch (error) { // eslint-disable-next-line no-console console.error('Logger flush failed:', error); @@ -332,4 +338,4 @@ export async function shutdownLoggers(): Promise { } // Export types for convenience -export type { LogLevel, LogContext, LogMetadata } from './types'; +export type { LogContext, LogLevel, LogMetadata } from './types';