diff --git a/logging.lua b/logging.lua
index 24b41a5..b083a63 100644
--- a/logging.lua
+++ b/logging.lua
@@ -9,15 +9,25 @@ local loglevels={
 	["TRACE"]=6
 }
 local loglevels_index={}
+local loglevels_abbrev={}
 for k, v in pairs(loglevels) do
 	loglevels_index[v]=k
+	loglevels_abbrev[k:sub(1,1)]=v
 end
 
--- default log level
-local loglevel="INFO"
+local loglevel
 
+---@deprecated use loglevel int
+local loglevel_str="INFO"
+
+
+---@param level string|integer
 function logging.set(level)
-	loglevel=loglevels[level] and level or loglevel
+	--                                            +---we can do this
+	--                                            |   becasue each one has
+	--                                            v   a unique letter
+	loglevel=loglevels[level] or loglevels_abbrev[tostring(level):sub(1,1):upper()] or
+		((level >=0 and level <=6) and level) or loglevel
 end
 
 ---deprecated wrapper for logging.set, it is intentionally a wrapper instead of
@@ -27,10 +37,11 @@ function logging.setLogLevel(level)
 	return logging.set(level)
 end
 
+-- default log level
 logging.set("INFO")
 
 local function printLog(severity, ...)
-	if (loglevels[loglevel]) >= severity then
+	if (loglevel) >= severity then
 		log("[" .. loglevels_index[severity] .. "] ", ...)
 	end
 end