mirror of
https://github.com/nestriness/nestri.git
synced 2025-12-12 16:55:37 +02:00
30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import { format } from "util";
|
|
|
|
/**
|
|
* Overrides the default Node.js console logging methods with a custom logger.
|
|
*
|
|
* This function patches console.log, console.warn, console.error, console.trace, and console.debug so that each logs
|
|
* messages prefixed with a log level. The messages are formatted using Node.js formatting conventions, with newline
|
|
* characters replaced by carriage returns, and are written directly to standard output.
|
|
*
|
|
* @example
|
|
* patchLogger();
|
|
* console.info("Server started on port %d", 3000);
|
|
*/
|
|
export function patchLogger() {
|
|
const log =
|
|
(level: "INFO" | "WARN" | "TRACE" | "DEBUG" | "ERROR") =>
|
|
(msg: string, ...rest: any[]) => {
|
|
let formattedMessage = format(msg, ...rest);
|
|
// Split by newlines, prefix each line with the level, and join back
|
|
const lines = formattedMessage.split('\n');
|
|
const prefixedLines = lines.map(line => `${level}\t${line}`);
|
|
const output = prefixedLines.join('\n');
|
|
process.stdout.write(output + '\n');
|
|
};
|
|
console.log = log("INFO");
|
|
console.warn = log("WARN");
|
|
console.error = log("ERROR");
|
|
console.trace = log("TRACE");
|
|
console.debug = log("DEBUG");
|
|
} |