chore: unified our logging infrastructure to only use log.XYZ

Co-authored-by: Frank Elsinga <frank@elsinga.de>
Closes: #4392

Squashed commit of the following:

commit 75c4c35da2
Merge: 14e3c3c7 dd758903
Author: Frank Elsinga <frank@elsinga.de>
Date:   Fri Sep 13 22:46:21 2024 +0800

    Merge branch 'master' into unified-logging-infrastructure

commit 14e3c3c7c1
Merge: d622dfbb c919d2c9
Author: Frank Elsinga <frank@elsinga.de>
Date:   Mon Jun 3 16:00:56 2024 +0200

    Merge branch 'master' into unified-logging-infrastructure

commit d622dfbb57
Author: Frank Elsinga <frank@elsinga.de>
Date:   Thu Jan 18 22:31:10 2024 +0100

    unified our logging infrastructure

(and)

build: recompile `utils.js`
This commit is contained in:
Cassandra Beelen 2024-09-19 09:39:57 +02:00
parent e85789ecae
commit 800d868d3f
No known key found for this signature in database
10 changed files with 58 additions and 45 deletions

View file

@ -515,12 +515,12 @@ class Database {
let title = await Settings.get("title"); let title = await Settings.get("title");
if (title) { if (title) {
console.log("Migrating Status Page"); log.info("database", "Migrating Status Page");
let statusPageCheck = await R.findOne("status_page", " slug = 'default' "); let statusPageCheck = await R.findOne("status_page", " slug = 'default' ");
if (statusPageCheck !== null) { if (statusPageCheck !== null) {
console.log("Migrating Status Page - Skip, default slug record is already existing"); log.info("database", "Migrating Status Page - Skip, default slug record is already existing");
return; return;
} }
@ -566,7 +566,7 @@ class Database {
await Settings.set("entryPage", "statusPage-default", "general"); await Settings.set("entryPage", "statusPage-default", "general");
} }
console.log("Migrating Status Page - Done"); log.info("database", "Migrating Status Page - Done");
} }
} }

View file

@ -63,7 +63,7 @@ if (process.platform === "win32") {
* @returns {Promise<boolean>} The executable is allowed? * @returns {Promise<boolean>} The executable is allowed?
*/ */
async function isAllowedChromeExecutable(executablePath) { async function isAllowedChromeExecutable(executablePath) {
console.log(config.args); log.info("Chromium", config.args);
if (config.args["allow-all-chrome-exec"] || process.env.UPTIME_KUMA_ALLOW_ALL_CHROME_EXEC === "1") { if (config.args["allow-all-chrome-exec"] || process.env.UPTIME_KUMA_ALLOW_ALL_CHROME_EXEC === "1") {
return true; return true;
} }
@ -102,7 +102,8 @@ async function getBrowser() {
*/ */
async function getRemoteBrowser(remoteBrowserID, userId) { async function getRemoteBrowser(remoteBrowserID, userId) {
let remoteBrowser = await RemoteBrowser.get(remoteBrowserID, userId); let remoteBrowser = await RemoteBrowser.get(remoteBrowserID, userId);
log.debug("MONITOR", `Using remote browser: ${remoteBrowser.name} (${remoteBrowser.id})`); log.debug("Chromium", `Using remote browser: ${remoteBrowser.name} (${remoteBrowser.id})`);
browser = chromium.connect(remoteBrowser.url);
browser = await chromium.connect(remoteBrowser.url); browser = await chromium.connect(remoteBrowser.url);
return browser; return browser;
} }

View file

@ -2,6 +2,7 @@ const NotificationProvider = require("./notification-provider");
const axios = require("axios"); const axios = require("axios");
const { getMonitorRelativeURL, UP } = require("../../src/util"); const { getMonitorRelativeURL, UP } = require("../../src/util");
const { Settings } = require("../settings"); const { Settings } = require("../settings");
const { log } = require("../../src/util");
class Slack extends NotificationProvider { class Slack extends NotificationProvider {
name = "slack"; name = "slack";
@ -17,10 +18,10 @@ class Slack extends NotificationProvider {
let currentPrimaryBaseURL = await Settings.get("primaryBaseURL"); let currentPrimaryBaseURL = await Settings.get("primaryBaseURL");
if (!currentPrimaryBaseURL) { if (!currentPrimaryBaseURL) {
console.log("Move the url to be the primary base URL"); log.error("notification", "Move the url to be the primary base URL");
await Settings.set("primaryBaseURL", url, "general"); await Settings.set("primaryBaseURL", url, "general");
} else { } else {
console.log("Already there, no need to move the primary base URL"); log.debug("notification", "Already there, no need to move the primary base URL");
} }
} }

View file

@ -1464,7 +1464,7 @@ let needSetup = false;
}); });
} catch (e) { } catch (e) {
console.error(e); log.error("server", e);
callback({ callback({
ok: false, ok: false,

View file

@ -60,7 +60,7 @@ module.exports.apiKeySocketHandler = (socket) => {
ok: true, ok: true,
}); });
} catch (e) { } catch (e) {
console.error(e); log.error("apikeys", e);
callback({ callback({
ok: false, ok: false,
msg: e.message, msg: e.message,

View file

@ -101,11 +101,11 @@ module.exports.autoStart = async (token) => {
} else { } else {
// Override the current token via args or env var // Override the current token via args or env var
await Settings.set("cloudflaredTunnelToken", token); await Settings.set("cloudflaredTunnelToken", token);
console.log("Use cloudflared token from args or env var"); log.info("cloudflare", "Use cloudflared token from args or env var");
} }
if (token) { if (token) {
console.log("Start cloudflared"); log.info("cloudflare", "Start cloudflared");
cloudflared.token = token; cloudflared.token = token;
cloudflared.start(); cloudflared.start();
} }

View file

@ -67,7 +67,7 @@ module.exports.maintenanceSocketHandler = (socket) => {
}); });
} catch (e) { } catch (e) {
console.error(e); log.error("maintenance", e);
callback({ callback({
ok: false, ok: false,
msg: e.message, msg: e.message,
@ -177,7 +177,7 @@ module.exports.maintenanceSocketHandler = (socket) => {
ok: true, ok: true,
}); });
} catch (e) { } catch (e) {
console.error(e); log.error("maintenance", e);
callback({ callback({
ok: false, ok: false,
msg: e.message, msg: e.message,
@ -201,7 +201,7 @@ module.exports.maintenanceSocketHandler = (socket) => {
}); });
} catch (e) { } catch (e) {
console.error(e); log.error("maintenance", e);
callback({ callback({
ok: false, ok: false,
msg: e.message, msg: e.message,
@ -225,7 +225,7 @@ module.exports.maintenanceSocketHandler = (socket) => {
}); });
} catch (e) { } catch (e) {
console.error(e); log.error("maintenance", e);
callback({ callback({
ok: false, ok: false,
msg: e.message, msg: e.message,

View file

@ -292,7 +292,7 @@ module.exports.statusPageSocketHandler = (socket) => {
}); });
} catch (error) { } catch (error) {
console.error(error); log.error("socket", error);
callback({ callback({
ok: false, ok: false,
msg: error.message, msg: error.message,

View file

@ -8,17 +8,34 @@
// Backend uses the compiled file util.js // Backend uses the compiled file util.js
// Frontend uses util.ts // Frontend uses util.ts
*/ */
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) { var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod }; return (mod && mod.__esModule) ? mod : { "default": mod };
}; };
var _a; var _a;
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.sleep = exports.flipStatus = exports.badgeConstants = exports.CONSOLE_STYLE_BgGray = exports.CONSOLE_STYLE_BgWhite = exports.CONSOLE_STYLE_BgCyan = exports.CONSOLE_STYLE_BgMagenta = exports.CONSOLE_STYLE_BgBlue = exports.CONSOLE_STYLE_BgYellow = exports.CONSOLE_STYLE_BgGreen = exports.CONSOLE_STYLE_BgRed = exports.CONSOLE_STYLE_BgBlack = exports.CONSOLE_STYLE_FgPink = exports.CONSOLE_STYLE_FgBrown = exports.CONSOLE_STYLE_FgViolet = exports.CONSOLE_STYLE_FgLightBlue = exports.CONSOLE_STYLE_FgLightGreen = exports.CONSOLE_STYLE_FgOrange = exports.CONSOLE_STYLE_FgGray = exports.CONSOLE_STYLE_FgWhite = exports.CONSOLE_STYLE_FgCyan = exports.CONSOLE_STYLE_FgMagenta = exports.CONSOLE_STYLE_FgBlue = exports.CONSOLE_STYLE_FgYellow = exports.CONSOLE_STYLE_FgGreen = exports.CONSOLE_STYLE_FgRed = exports.CONSOLE_STYLE_FgBlack = exports.CONSOLE_STYLE_Hidden = exports.CONSOLE_STYLE_Reverse = exports.CONSOLE_STYLE_Blink = exports.CONSOLE_STYLE_Underscore = exports.CONSOLE_STYLE_Dim = exports.CONSOLE_STYLE_Bright = exports.CONSOLE_STYLE_Reset = exports.MIN_INTERVAL_SECOND = exports.MAX_INTERVAL_SECOND = exports.SQL_DATETIME_FORMAT_WITHOUT_SECOND = exports.SQL_DATETIME_FORMAT = exports.SQL_DATE_FORMAT = exports.STATUS_PAGE_MAINTENANCE = exports.STATUS_PAGE_PARTIAL_DOWN = exports.STATUS_PAGE_ALL_UP = exports.STATUS_PAGE_ALL_DOWN = exports.MAINTENANCE = exports.PENDING = exports.UP = exports.DOWN = exports.appName = exports.isNode = exports.isDev = void 0; exports.sleep = exports.flipStatus = exports.badgeConstants = exports.CONSOLE_STYLE_BgGray = exports.CONSOLE_STYLE_BgWhite = exports.CONSOLE_STYLE_BgCyan = exports.CONSOLE_STYLE_BgMagenta = exports.CONSOLE_STYLE_BgBlue = exports.CONSOLE_STYLE_BgYellow = exports.CONSOLE_STYLE_BgGreen = exports.CONSOLE_STYLE_BgRed = exports.CONSOLE_STYLE_BgBlack = exports.CONSOLE_STYLE_FgPink = exports.CONSOLE_STYLE_FgBrown = exports.CONSOLE_STYLE_FgViolet = exports.CONSOLE_STYLE_FgLightBlue = exports.CONSOLE_STYLE_FgLightGreen = exports.CONSOLE_STYLE_FgOrange = exports.CONSOLE_STYLE_FgGray = exports.CONSOLE_STYLE_FgWhite = exports.CONSOLE_STYLE_FgCyan = exports.CONSOLE_STYLE_FgMagenta = exports.CONSOLE_STYLE_FgBlue = exports.CONSOLE_STYLE_FgYellow = exports.CONSOLE_STYLE_FgGreen = exports.CONSOLE_STYLE_FgRed = exports.CONSOLE_STYLE_FgBlack = exports.CONSOLE_STYLE_Hidden = exports.CONSOLE_STYLE_Reverse = exports.CONSOLE_STYLE_Blink = exports.CONSOLE_STYLE_Underscore = exports.CONSOLE_STYLE_Dim = exports.CONSOLE_STYLE_Bright = exports.CONSOLE_STYLE_Reset = exports.MIN_INTERVAL_SECOND = exports.MAX_INTERVAL_SECOND = exports.SQL_DATETIME_FORMAT_WITHOUT_SECOND = exports.SQL_DATETIME_FORMAT = exports.SQL_DATE_FORMAT = exports.STATUS_PAGE_MAINTENANCE = exports.STATUS_PAGE_PARTIAL_DOWN = exports.STATUS_PAGE_ALL_UP = exports.STATUS_PAGE_ALL_DOWN = exports.MAINTENANCE = exports.PENDING = exports.UP = exports.DOWN = exports.appName = exports.isNode = exports.isDev = void 0;
exports.evaluateJsonQuery = exports.intHash = exports.localToUTC = exports.utcToLocal = exports.utcToISODateTime = exports.isoToUTCDateTime = exports.parseTimeFromTimeObject = exports.parseTimeObject = exports.getMaintenanceRelativeURL = exports.getMonitorRelativeURL = exports.genSecret = exports.getCryptoRandomInt = exports.getRandomInt = exports.getRandomArbitrary = exports.TimeLogger = exports.polyfill = exports.log = exports.debug = exports.ucfirst = void 0; exports.evaluateJsonQuery = exports.intHash = exports.localToUTC = exports.utcToLocal = exports.utcToISODateTime = exports.isoToUTCDateTime = exports.parseTimeFromTimeObject = exports.parseTimeObject = exports.getMaintenanceRelativeURL = exports.getMonitorRelativeURL = exports.genSecret = exports.getCryptoRandomInt = exports.getRandomInt = exports.getRandomArbitrary = exports.TimeLogger = exports.polyfill = exports.log = exports.ucfirst = void 0;
exports.intHash = exports.localToUTC = exports.utcToLocal = exports.utcToISODateTime = exports.isoToUTCDateTime = exports.parseTimeFromTimeObject = exports.parseTimeObject = exports.getMaintenanceRelativeURL = exports.getMonitorRelativeURL = exports.genSecret = exports.getCryptoRandomInt = exports.getRandomInt = exports.getRandomArbitrary = exports.TimeLogger = exports.polyfill = exports.log = exports.debug = exports.ucfirst = void 0;
const dayjs_1 = __importDefault(require("dayjs")); const dayjs_1 = __importDefault(require("dayjs"));
const dayjs = require("dayjs"); const jsonata = __importStar(require("jsonata"));
const jsonata = require("jsonata");
exports.isDev = process.env.NODE_ENV === "development"; exports.isDev = process.env.NODE_ENV === "development";
exports.isNode = typeof process !== "undefined" && ((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node); exports.isNode = typeof process !== "undefined" && ((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node);
exports.appName = "Uptime Kuma"; exports.appName = "Uptime Kuma";
@ -66,7 +83,6 @@ exports.CONSOLE_STYLE_BgMagenta = "\x1b[45m";
exports.CONSOLE_STYLE_BgCyan = "\x1b[46m"; exports.CONSOLE_STYLE_BgCyan = "\x1b[46m";
exports.CONSOLE_STYLE_BgWhite = "\x1b[47m"; exports.CONSOLE_STYLE_BgWhite = "\x1b[47m";
exports.CONSOLE_STYLE_BgGray = "\x1b[100m"; exports.CONSOLE_STYLE_BgGray = "\x1b[100m";
const consoleModuleColors = [ const consoleModuleColors = [
exports.CONSOLE_STYLE_FgCyan, exports.CONSOLE_STYLE_FgCyan,
exports.CONSOLE_STYLE_FgGreen, exports.CONSOLE_STYLE_FgGreen,
@ -125,10 +141,6 @@ function ucfirst(str) {
return firstLetter.toUpperCase() + str.substr(1); return firstLetter.toUpperCase() + str.substr(1);
} }
exports.ucfirst = ucfirst; exports.ucfirst = ucfirst;
function debug(msg) {
exports.log.log("", msg, "debug");
}
exports.debug = debug;
class Logger { class Logger {
constructor() { constructor() {
this.hideLog = { this.hideLog = {
@ -157,7 +169,6 @@ class Logger {
return; return;
} }
module = module.toUpperCase(); module = module.toUpperCase();
level = level.toUpperCase();
let now; let now;
if (dayjs_1.default.tz) { if (dayjs_1.default.tz) {
now = dayjs_1.default.tz(new Date()).format(); now = dayjs_1.default.tz(new Date()).format();
@ -231,23 +242,23 @@ class Logger {
} }
} }
info(module, msg) { info(module, msg) {
this.log(module, msg, "info"); this.log(module, msg, "INFO");
} }
warn(module, msg) { warn(module, msg) {
this.log(module, msg, "warn"); this.log(module, msg, "WARN");
} }
error(module, msg) { error(module, msg) {
this.log(module, msg, "error"); this.log(module, msg, "ERROR");
} }
debug(module, msg) { debug(module, msg) {
this.log(module, msg, "debug"); this.log(module, msg, "DEBUG");
} }
exception(module, exception, msg) { exception(module, exception, msg) {
let finalMessage = exception; let finalMessage = exception;
if (msg) { if (msg) {
finalMessage = `${msg}: ${exception}`; finalMessage = `${msg}: ${exception}`;
} }
this.log(module, finalMessage, "error"); this.log(module, finalMessage, "ERROR");
} }
} }
exports.log = new Logger(); exports.log = new Logger();

View file

@ -201,12 +201,13 @@ class Logger {
/** /**
* Write a message to the log * Write a message to the log
* @private
* @param module The module the log comes from * @param module The module the log comes from
* @param msg Message to write * @param msg Message to write
* @param level Log level. One of INFO, WARN, ERROR, DEBUG or can be customized. * @param level {"INFO"|"WARN"|"ERROR"|"DEBUG"} Log level
* @returns {void} * @returns {void}
*/ */
log(module: string, msg: any, level: string) { log(module: string, msg: unknown, level: "INFO"|"WARN"|"ERROR"|"DEBUG"): void {
if (level === "DEBUG" && !isDev) { if (level === "DEBUG" && !isDev) {
return; return;
} }
@ -216,7 +217,6 @@ class Logger {
} }
module = module.toUpperCase(); module = module.toUpperCase();
level = level.toUpperCase();
let now; let now;
if (dayjs.tz) { if (dayjs.tz) {
@ -303,8 +303,8 @@ class Logger {
* @param msg Message to write * @param msg Message to write
* @returns {void} * @returns {void}
*/ */
info(module: string, msg: unknown) { info(module: string, msg: string): void {
this.log(module, msg, "info"); this.log(module, msg, "INFO");
} }
/** /**
@ -313,8 +313,8 @@ class Logger {
* @param msg Message to write * @param msg Message to write
* @returns {void} * @returns {void}
*/ */
warn(module: string, msg: unknown) { warn(module: string, msg: string): void {
this.log(module, msg, "warn"); this.log(module, msg, "WARN");
} }
/** /**
@ -323,8 +323,8 @@ class Logger {
* @param msg Message to write * @param msg Message to write
* @returns {void} * @returns {void}
*/ */
error(module: string, msg: unknown) { error(module: string, msg: string): void {
this.log(module, msg, "error"); this.log(module, msg, "ERROR");
} }
/** /**
@ -333,8 +333,8 @@ class Logger {
* @param msg Message to write * @param msg Message to write
* @returns {void} * @returns {void}
*/ */
debug(module: string, msg: unknown) { debug(module: string, msg: string): void {
this.log(module, msg, "debug"); this.log(module, msg, "DEBUG");
} }
/** /**
@ -351,7 +351,7 @@ class Logger {
finalMessage = `${msg}: ${exception}`; finalMessage = `${msg}: ${exception}`;
} }
this.log(module, finalMessage, "error"); this.log(module, finalMessage, "ERROR");
} }
} }
@ -395,7 +395,7 @@ export class TimeLogger {
* @param name Name of monitor * @param name Name of monitor
* @returns {void} * @returns {void}
*/ */
print(name: string) { print(name: string): void {
if (isDev && process.env.TIMELOGGER === "1") { if (isDev && process.env.TIMELOGGER === "1") {
console.log(name + ": " + (dayjs().valueOf() - this.startTime) + "ms"); console.log(name + ": " + (dayjs().valueOf() - this.startTime) + "ms");
} }