feat: add KOMGA_DEBUG environment variable for enhanced logging of Komga requests and responses

This commit is contained in:
Julien Froidefond
2025-10-29 13:15:17 +01:00
parent 0a1ae8c9ea
commit 24431c6718
2 changed files with 41 additions and 0 deletions

3
ENV.md
View File

@@ -18,6 +18,9 @@ ADMIN_DEFAULT_PASSWORD=Admin@2025
# Cache Debug (optional - logs cache operations)
# CACHE_DEBUG=true
# Komga Debug (optional - logs all requests to Komga)
# KOMGA_DEBUG=true
# Komga Request Queue (optional - max concurrent requests to Komga, default: 2)
# KOMGA_MAX_CONCURRENT_REQUESTS=5

View File

@@ -176,6 +176,19 @@ export abstract class BaseApiService {
}
}
const isDebug = process.env.KOMGA_DEBUG === 'true';
const startTime = isDebug ? Date.now() : 0;
if (isDebug) {
logger.info({
url,
method: options.method || 'GET',
params,
isImage: options.isImage,
noJson: options.noJson,
}, '🔵 Komga Request');
}
// Timeout réduit à 15 secondes pour éviter les blocages longs
const timeoutMs = 15000;
const controller = new AbortController();
@@ -238,7 +251,24 @@ export abstract class BaseApiService {
});
clearTimeout(timeoutId);
if (isDebug) {
const duration = Date.now() - startTime;
logger.info({
url,
status: response.status,
duration: `${duration}ms`,
ok: response.ok,
}, '🟢 Komga Response');
}
if (!response.ok) {
if (isDebug) {
logger.error({
url,
status: response.status,
statusText: response.statusText,
}, '🔴 Komga Error Response');
}
throw new AppError(ERROR_CODES.KOMGA.HTTP_ERROR, {
status: response.status,
statusText: response.statusText,
@@ -255,6 +285,14 @@ export abstract class BaseApiService {
return response.json();
} catch (error) {
if (isDebug) {
const duration = Date.now() - startTime;
logger.error({
url,
error: error instanceof Error ? error.message : String(error),
duration: `${duration}ms`,
}, '🔴 Komga Request Failed');
}
throw error;
} finally {
clearTimeout(timeoutId);