59 lines
1.4 KiB
QML
59 lines
1.4 KiB
QML
pragma Singleton
|
|
|
|
import Quickshell
|
|
import qs.Utils
|
|
|
|
Singleton {
|
|
id: root
|
|
|
|
function _formatMessage(...args) {
|
|
var t = Time.getFormattedTimestamp()
|
|
if (args.length > 1) {
|
|
const maxLength = 14
|
|
var module = args.shift().substring(0, maxLength).padStart(maxLength, " ")
|
|
return `\x1b[36m[${t}]\x1b[0m \x1b[35m${module}\x1b[0m ` + args.join(" ")
|
|
} else {
|
|
return `[\x1b[36m[${t}]\x1b[0m ` + args.join(" ")
|
|
}
|
|
}
|
|
|
|
function _getStackTrace() {
|
|
try {
|
|
throw new Error("Stack trace")
|
|
} catch (e) {
|
|
return e.stack
|
|
}
|
|
}
|
|
|
|
function log(...args) {
|
|
var msg = _formatMessage(...args)
|
|
console.log(msg)
|
|
}
|
|
|
|
function warn(...args) {
|
|
var msg = _formatMessage(...args)
|
|
console.warn(msg)
|
|
}
|
|
|
|
function error(...args) {
|
|
var msg = _formatMessage(...args)
|
|
console.error(msg)
|
|
}
|
|
|
|
function callStack() {
|
|
var stack = _getStackTrace()
|
|
Logger.log("Debug", "--------------------------")
|
|
Logger.log("Debug", "Current call stack")
|
|
// Split the stack into lines and log each one
|
|
var stackLines = stack.split('\n')
|
|
for (var i = 0; i < stackLines.length; i++) {
|
|
var line = stackLines[i].trim() // Remove leading/trailing whitespace
|
|
if (line.length > 0) {
|
|
// Only log non-empty lines
|
|
Logger.log("Debug", `- ${line}`)
|
|
}
|
|
}
|
|
Logger.log("Debug", "--------------------------")
|
|
}
|
|
}
|