UNPKG

dtp-tripwire-agent

Version:

A service for protecting your node against malicious attacks and scans.

88 lines 3.03 kB
// lib/log.ts // Copyright (C) 2025 DTP Technologies, LLC // All Rights Reserved import env from "../config/env.js"; import * as util from "node:util"; import dayjs from "dayjs"; import color from "ansicolor"; export var TripwireLogLevel; (function (TripwireLogLevel) { TripwireLogLevel["debug"] = "debug"; TripwireLogLevel["info"] = "info"; TripwireLogLevel["warn"] = "warn"; TripwireLogLevel["alert"] = "alert"; TripwireLogLevel["error"] = "error"; TripwireLogLevel["crit"] = "crit"; TripwireLogLevel["fatal"] = "fatal"; })(TripwireLogLevel || (TripwireLogLevel = {})); export class TripwireLog { constructor() { } async debug(message, metadata) { if (!env.log.levels.debug) { return; } return this.writeLog(TripwireLogLevel.debug, message, metadata); } async info(message, metadata) { if (!env.log.levels.info) { return; } return this.writeLog(TripwireLogLevel.info, message, metadata); } async warn(message, metadata) { if (!env.log.levels.warn) { return; } return this.writeLog(TripwireLogLevel.warn, message, metadata); } async alert(message, metadata) { return this.writeLog(TripwireLogLevel.alert, message, metadata); } async error(message, metadata) { return this.writeLog(TripwireLogLevel.error, message, metadata); } async crit(message, metadata) { return this.writeLog(TripwireLogLevel.crit, message, metadata); } async fatal(message, metadata) { return this.writeLog(TripwireLogLevel.fatal, message, metadata); } async writeLog(level, message, metadata) { const timestamp = new Date(); let clevel = level.padEnd(5); switch (level) { case "debug": clevel = color.darkGray(clevel); break; case "info": clevel = color.green(clevel); break; case "warn": clevel = color.yellow(clevel); break; case "alert": clevel = color.red(clevel); break; case "error": clevel = color.bgRed.white(clevel); break; case "crit": clevel = color.bgRed.yellow(clevel); break; case "fatal": clevel = color.bgRed.darkGray(clevel); break; } const ccomponent = color.cyan("tripwire"); const ctimestamp = color.darkGray(dayjs(timestamp).format("YYYY-MM-DD HH:mm:ss.SSS")); const cmessage = color.darkGray(message); if (metadata) { console.log(`${ctimestamp} ${clevel} ${ccomponent} ${cmessage}`, util.inspect(metadata, false, Infinity, true)); } else { console.log(`${ctimestamp} ${clevel} ${ccomponent} ${cmessage}`); } } } export default new TripwireLog(); //# sourceMappingURL=log.js.map