Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve logging #56

Merged
merged 11 commits into from
Mar 30, 2024
2 changes: 1 addition & 1 deletion core/sound.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ function register_sound(name, path, filename)
s.original_volume = 0.75
s.sound_code = name

sendDebugMessage("Registered sound " .. name .. " from file " .. filename)
sendDebugMessage("Registered sound " .. name .. " from file " .. filename)
SMODS.SOUND_SOURCES[name] = s
end

Expand Down
4 changes: 2 additions & 2 deletions core/sprite.lua
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@ function SMODS.injectSprites()
else
error("Bad Sprite type")
end
sendDebugMessage("The Sprite named " .. sprite.name .. " with path " .. sprite.path .. " have been registered.")

sendDebugMessage("The Sprite named " .. sprite.name .. " with path " .. sprite.path .. " have been registered.")
end

--Reload Textures
Expand Down
51 changes: 41 additions & 10 deletions debug/debug.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,54 @@
------------MOD DEBUG SOCKET------------------

function initializeSocketConnection()
local socket = require("socket")
client = socket.connect("localhost", 12345)
if not client then
print("Failed to connect to the debug server")
end
local socket = require("socket")
client = socket.connect("localhost", 12345)
if not client then
print("Failed to connect to the debug server")
end
end

function sendDebugMessage(message)
if client then
client:send(message .. "\n")
end
-- message, logger in this order to preserve backward compatibility
function sendTraceMessage(message, logger)
sendMessageToConsole("TRACE", logger, message)
end

function sendDebugMessage(message, logger)
sendMessageToConsole("DEBUG", logger, message)
end

function sendInfoMessage(message, logger)
-- space in info string to align the logs in console
sendMessageToConsole("INFO ", logger, message)
end

function sendWarnMessage(message, logger)
-- space in warn string to align the logs in console
sendMessageToConsole("WARN ", logger, message)
end

function sendErrorMessage(message, logger)
sendMessageToConsole("ERROR", logger, message)
end

function sendFatalMessage(message, logger)
sendMessageToConsole("FATAL", logger, message)
end

function sendMessageToConsole(level, logger, message)
if client then
level = level or "DEBUG"
logger = logger or "DefaultLogger"
message = message or "Default log message"
-- naive way to separate the logs if the console receive multiple logs at the same time
client:send(level .. " :: " .. logger .. " :: " .. message .. "ENDOFLOG")
end
end

initializeSocketConnection()

-- Use the function to send messages
sendDebugMessage("Steamodded Debug Socket started !")
sendDebugMessage("Steamodded Debug Socket started !", "DebugConsole")

----------------------------------------------
------------MOD DEBUG SOCKET END--------------
12 changes: 9 additions & 3 deletions debug/tk_debug_window.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
import tkinter as tk
import socket
import threading
from datetime import datetime


def client_handler(client_socket):
while True:
data = client_socket.recv(1024)
if not data:
break
text_widget.insert(tk.END, data.decode() + '\n')
text_widget.see(tk.END)

decoded_data = data.decode()
logs = decoded_data.split("ENDOFLOG")
for log in logs:
if log:
text_widget.insert(tk.END, datetime.now().strftime("%Y-%m-%d %H:%M:%S") + " :: " + log + '\n')
text_widget.see(tk.END)


def listen_for_clients():
Expand All @@ -21,7 +27,7 @@ def listen_for_clients():
threading.Thread(target=client_handler, args=(client,)).start()


def on_search_entry_change(varName, index, mode):
def on_search_entry_change(var_name, index, mode):
global search_after_id
if search_after_id:
root.after_cancel(search_after_id)
Expand Down