dtp-tripwire-agent
Version:
A service for protecting your node against malicious attacks and scans.
88 lines • 3.03 kB
JavaScript
// 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