123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- // Copyright Epic Games, Inc. All Rights Reserved.
- const fs = require('fs');
- const { Console } = require('console');
- var loggers=[];
- var logFunctions=[];
- var logColorFunctions=[];
- console.log = function(msg, ...args) {
- logFunctions.forEach((logFunction) => {
- logFunction(msg, ...args);
- });
- }
- console.logColor = function(color, msg, ...args) {
- logColorFunctions.forEach((logColorFunction) => {
- logColorFunction(color, msg, ...args);
- });
- }
- const AllAttributesOff = '\x1b[0m';
- const BoldOn = '\x1b[1m';
- const Black = '\x1b[30m';
- const Red = '\x1b[31m';
- const Green = '\x1b[32m';
- const Yellow = '\x1b[33m';
- const Blue = '\x1b[34m';
- const Magenta = '\x1b[35m';
- const Cyan = '\x1b[36m';
- const White = '\x1b[37m';
- /**
- * Pad the start of the given number with zeros so it takes up the number of digits.
- * e.g. zeroPad(5, 3) = '005' and zeroPad(23, 2) = '23'.
- */
- function zeroPad(number, digits) {
- let string = number.toString();
- while (string.length < digits) {
- string = '0' + string;
- }
- return string;
- }
- /**
- * Create a string of the form 'YEAR.MONTH.DATE.HOURS.MINUTES.SECONDS'.
- */
- function dateTimeToString() {
- let date = new Date();
- return `${date.getFullYear()}.${zeroPad(date.getMonth(), 2)}.${zeroPad(date.getDate(), 2)}.${zeroPad(date.getHours(), 2)}.${zeroPad(date.getMinutes(), 2)}.${zeroPad(date.getSeconds(), 2)}`;
- }
- /**
- * Create a string of the form 'HOURS.MINUTES.SECONDS.MILLISECONDS'.
- */
- function timeToString() {
- let date = new Date();
- return `${zeroPad(date.getHours(), 2)}:${zeroPad(date.getMinutes(), 2)}:${zeroPad(date.getSeconds(), 2)}.${zeroPad(date.getMilliseconds(), 3)}`;
- }
- function RegisterFileLogger(path) {
- if(path == null)
- path = './';
-
- if (!fs.existsSync(path))
- fs.mkdirSync(path);
-
- var output = fs.createWriteStream(`./logs/${dateTimeToString()}.log`);
- var fileLogger = new Console(output);
- logFunctions.push(function(msg, ...args) {
- fileLogger.log(`${timeToString()} ${msg}`, ...args);
- });
-
- logColorFunctions.push(function(color, msg, ...args) {
- fileLogger.log(`${timeToString()} ${msg}`, ...args);
- });
- loggers.push(fileLogger);
- }
-
- function RegisterConsoleLogger() {
- var consoleLogger = new Console(process.stdout, process.stderr)
- logFunctions.push(function(msg, ...args) {
- consoleLogger.log(`${timeToString()} ${msg}`, ...args);
- });
-
- logColorFunctions.push(function(color, msg, ...args) {
- consoleLogger.log(`${BoldOn}${color}${timeToString()} ${msg}${AllAttributesOff}`, ...args);
- });
- loggers.push(consoleLogger);
- }
- module.exports = {
- //Functions
- RegisterFileLogger,
- RegisterConsoleLogger,
-
- //Variables
- AllAttributesOff,
- BoldOn,
- Black,
- Red,
- Green,
- Yellow,
- Blue,
- Magenta,
- Cyan,
- White
- }
|