reorg
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
const HolesailLogger = require('holesail-logger');
|
||||
// Define LOG_LEVELS explicitly since they may not be accessible from the logger instance
|
||||
const LOG_LEVELS = {
|
||||
DEBUG: 0,
|
||||
INFO: 1,
|
||||
WARN: 2,
|
||||
ERROR: 3
|
||||
};
|
||||
// Create a singleton instance of HolesailLogger with minLevel from .env
|
||||
let logger;
|
||||
try {
|
||||
logger = new HolesailLogger({
|
||||
enabled: true,
|
||||
prefix: 'P2NS',
|
||||
level: parseInt(process.env.LOG_LEVEL || 0)
|
||||
});
|
||||
// Test logger initialization
|
||||
logger.log({ type: LOG_LEVELS.INFO, msg: 'Logger initialized successfully' });
|
||||
} catch (error) {
|
||||
console.error(`Failed to initialize HolesailLogger: ${error.message}`);
|
||||
// Fallback to console-based logging
|
||||
logger = {
|
||||
log: ({ type, msg }) => {
|
||||
const timestamp = new Date().toISOString();
|
||||
const levelStr = type === 0 ? 'DEBUG' : type === 1 ? 'INFO' : type === 2 ? 'WARN' : type === 3 ? 'ERROR' : 'UNKNOWN';
|
||||
const consoleMethod = type === 2 ? console.warn : type === 3 ? console.error : console.log;
|
||||
consoleMethod(`${timestamp} [P2NS] [${levelStr}] ${msg}`);
|
||||
}
|
||||
};
|
||||
}
|
||||
// Wrapper functions to support prefix parameter and correct log level
|
||||
function logDebug(prefix, message) {
|
||||
logger.log({ type: LOG_LEVELS.DEBUG, msg: `[${prefix}] ${message}` });
|
||||
}
|
||||
function logInfo(prefix, message) {
|
||||
logger.log({ type: LOG_LEVELS.INFO, msg: `[${prefix}] ${message}` });
|
||||
}
|
||||
function logWarn(prefix, message) {
|
||||
logger.log({ type: LOG_LEVELS.WARN, msg: `[${prefix}] ${message}` });
|
||||
}
|
||||
function logError(prefix, message) {
|
||||
logger.log({ type: LOG_LEVELS.ERROR, msg: `[${prefix}] ${message}` });
|
||||
}
|
||||
|
||||
/**
|
||||
* Update log level at runtime
|
||||
* @param {number} newLevel - New log level (0-3)
|
||||
*/
|
||||
function updateLogLevel(newLevel) {
|
||||
try {
|
||||
// Recreate logger with new level
|
||||
logger = new HolesailLogger({
|
||||
enabled: true,
|
||||
prefix: 'P2NS',
|
||||
level: newLevel
|
||||
});
|
||||
logger.log({ type: LOG_LEVELS.INFO, msg: `Log level updated to ${newLevel}` });
|
||||
} catch (error) {
|
||||
console.error(`Failed to update logger level: ${error.message}`);
|
||||
// Fallback logger
|
||||
logger = {
|
||||
log: ({ type, msg }) => {
|
||||
const timestamp = new Date().toISOString();
|
||||
const levelStr = type === 0 ? 'DEBUG' : type === 1 ? 'INFO' : type === 2 ? 'WARN' : type === 3 ? 'ERROR' : 'UNKNOWN';
|
||||
const consoleMethod = type === 2 ? console.warn : type === 3 ? console.error : console.log;
|
||||
if (type >= newLevel) {
|
||||
consoleMethod(`${timestamp} [P2NS] [${levelStr}] ${msg}`);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { logDebug, logInfo, logWarn, logError, updateLogLevel };
|
||||
Reference in New Issue
Block a user