diff --git a/api1.js b/api1.js index 7ca5b65..2736f59 100644 --- a/api1.js +++ b/api1.js @@ -125,6 +125,13 @@ function registerTakerHandlers() { try { console.log(`🔧 Setting up logging: level=${level}, dataDir=${dataDir}`); + if (!api1State.coinswapNapi) { + await initNAPI(); + } + + // Default to Taker class for logging setup (shared mechanism) + const TakerClass = api1State.coinswapNapi?.Taker; + if (!TakerClass?.setupLogging) { throw new Error('setupLogging method not available'); } @@ -238,7 +245,7 @@ function registerTakerHandlers() { try { // Get log level from store, environment, or default to 'info' const logLevel = - store.get('logLevel') || process.env.LOG_LEVEL || 'info'; + store.get('logLevel') || process.env.LOG_LEVEL || 'debug'; console.log(`🔧 Setting up logging with level: ${logLevel}`); TakerClass.setupLogging?.(api1State.DATA_DIR, logLevel); @@ -1139,6 +1146,7 @@ function registerCoinswapHandlers() { api1State.storedTakerConfig?.zmqAddr || 'tcp://127.0.0.1:28332', password: password || '', protocol: protocol, + logLevel: store.get('logLevel') || process.env.LOG_LEVEL || 'debug', }; const worker = new Worker(path.join(__dirname, 'coinswap-worker.js'), { diff --git a/coinswap-worker.js b/coinswap-worker.js index ac57a91..24af8b2 100644 --- a/coinswap-worker.js +++ b/coinswap-worker.js @@ -29,9 +29,9 @@ const { parentPort, workerData } = require('worker_threads'); // Setup logging if available try { if (TakerClass.setupLogging) { - TakerClass.setupLogging(config.dataDir); + TakerClass.setupLogging(config.dataDir, config.logLevel || 'debug'); } else if (coinswapNapi.setupLogging) { - coinswapNapi.setupLogging(config.dataDir); + coinswapNapi.setupLogging(config.dataDir, config.logLevel || 'debug'); } } catch (logError) { console.warn('⚠️ Worker could not setup logging:', logError.message); diff --git a/src/components/log/Log.js b/src/components/log/Log.js index 310209b..11158ea 100644 --- a/src/components/log/Log.js +++ b/src/components/log/Log.js @@ -112,6 +112,7 @@ export function LogComponent(container) { info: logs.filter((l) => l.type === 'info').length, warn: logs.filter((l) => l.type === 'warn').length, error: logs.filter((l) => l.type === 'error').length, + debug: logs.filter((l) => l.type === 'debug').length, }; const total = Object.values(stats).reduce((a, b) => a + b, 0) || 1; @@ -119,12 +120,15 @@ export function LogComponent(container) { if (el('#info-count')) el('#info-count').textContent = stats.info; if (el('#warn-count')) el('#warn-count').textContent = stats.warn; if (el('#error-count')) el('#error-count').textContent = stats.error; + if (el('#debug-count')) el('#debug-count').textContent = stats.debug; if (el('#info-bar')) el('#info-bar').style.width = `${(stats.info / total) * 100}%`; if (el('#warn-bar')) el('#warn-bar').style.width = `${(stats.warn / total) * 100}%`; if (el('#error-bar')) el('#error-bar').style.width = `${(stats.error / total) * 100}%`; + if (el('#debug-bar')) + el('#debug-bar').style.width = `${(stats.debug / total) * 100}%`; } function setFilter(filter) { @@ -163,6 +167,7 @@ export function LogComponent(container) { +