added logging support

This commit is contained in:
2026-06-08 20:29:59 -07:00
parent 0c90ab885e
commit 6b864a2d9b
15 changed files with 1736 additions and 1073 deletions
+36 -5
View File
@@ -1,7 +1,28 @@
local logger = require("utils/logger")
local lovehandler = require("utils/love_file_handler")
multi, thread = require("multi"):init({priority=true})
multi.setClock(require("socket").gettime) -- When on linux os.clock doesn't reture actual seconds the program has elapsed for
GLOBAL, THREAD = require("multi.integration.loveManager"):init()
local fileHandler, logCtrl = lovehandler.new("logs/jeopardy.log", {
max_size = 512 * 1024, -- rotate at 512 KB
max_files = 3,
buffered = false, -- write every line immediately (safest for games)
})
lovehandler.auto_flush_on_quit(logCtrl)
log = logger.new("jeopardy", {
level = logger.LEVELS.DEBUG,
handlers = {
logger.handlers.ConsoleHandler({ colours = true }),
fileHandler,
},
})
local gui = require("gui")
local color = require("gui.core.color")
local title = require("menus.title")
@@ -23,25 +44,35 @@ gui:setHotKey({"f11"})(function()
love.window.setFullscreen(not fullscreen, "desktop")
end)
local loadLog = log:child("load")
local old = multi.error
multi.error = function(...)
old(...)
os.exit()
multi.error = function(self, err)
loadLog:error("Error: %s", err)
love.quit()
end
function love.load()
loadLog:info("Starting Jeopardy Game")
loadLog:debug("Setting game identity to jeopardy")
love.filesystem.setIdentity("jeopardy")
loadLog:trace("Creating save directory")
success = love.filesystem.createDirectory("")
if not success then
loadLog:fatal("Unable to create save directory")
love.quit()
end
loadLog:trace("Creating save directory")
gui:cacheImage({"assets/images/checked.png","assets/images/unchecked.png","assets/images/speaker.png"})
gui:setAspectSize(1920, 1080)
gui.aspect_ratio = true
loadLog:debug("Creating main background image")
local bg = gui:newImageLabel("assets/images/background.png")
bg:fullFrame()
loadLog:debug("Init menu module")
menu.init(bg)
loadLog:debug("Displaying title menu")
title:visible(true)
end