Implement centralized logging with RMABLogger

Replaces scattered console statements with a unified RMABLogger across backend API routes and services. Adds LOG_LEVEL-based filtering, job-aware database persistence, and context-based logging. Updates documentation to describe the new logging system and usage patterns. Also documents qBittorrent CSRF header fix
This commit is contained in:
kikootwo
2026-01-12 12:45:48 -05:00
parent ba5f5cf7d6
commit 682836237b
118 changed files with 1623 additions and 1079 deletions
+7 -4
View File
@@ -5,6 +5,9 @@
import { prisma } from '@/lib/db';
import { getEncryptionService } from './encryption.service';
import { RMABLogger } from '@/lib/utils/logger';
const logger = RMABLogger.create('Config');
/**
* Configuration update payload
@@ -70,7 +73,7 @@ export class ConfigurationService {
return null;
} catch (error) {
console.error(`[Config] Failed to get config key "${key}":`, error);
logger.error(`Failed to get config key "${key}"`, { error: error instanceof Error ? error.message : String(error) });
return null;
}
}
@@ -119,7 +122,7 @@ export class ConfigurationService {
return result;
} catch (error) {
console.error(`[Config] Failed to get category "${category}":`, error);
logger.error(`Failed to get category "${category}"`, { error: error instanceof Error ? error.message : String(error) });
return {};
}
}
@@ -144,7 +147,7 @@ export class ConfigurationService {
return result;
} catch (error) {
console.error('[Config] Failed to get all configuration:', error);
logger.error('Failed to get all configuration', { error: error instanceof Error ? error.message : String(error) });
return {};
}
}
@@ -186,7 +189,7 @@ export class ConfigurationService {
this.clearCache(update.key);
}
} catch (error) {
console.error('[Config] Failed to set configuration:', error);
logger.error('Failed to set configuration', { error: error instanceof Error ? error.message : String(error) });
throw error;
}
}