@@ -103,22 +103,23 @@ setError msg = do
103
103
extismSetError $ memoryOffset s
104
104
105
105
-- | Log level
106
- data LogLevel = LogInfo | LogDebug | LogWarn | LogError
106
+ data LogLevel = LogTrace | LogDebug | LogInfo | LogWarn | LogError deriving ( Enum )
107
107
108
108
-- | Log to configured log file
109
109
log :: LogLevel -> String -> IO ()
110
- log LogInfo msg = do
111
- s <- allocString msg
112
- extismLogInfo (memoryOffset s)
113
- log LogDebug msg = do
114
- s <- allocString msg
115
- extismLogDebug (memoryOffset s)
116
- log LogWarn msg = do
117
- s <- allocString msg
118
- extismLogWarn (memoryOffset s)
119
- log LogError msg = do
120
- s <- allocString msg
121
- extismLogError (memoryOffset s)
110
+ log level msg = do
111
+ configuredLevel <- extismGetLogLevel
112
+ if fromIntegral (fromEnum level) < configuredLevel
113
+ then return ()
114
+ else do
115
+ s <- allocString msg
116
+ let offs = memoryOffset s
117
+ case level of
118
+ LogTrace -> extismLogTrace offs
119
+ LogDebug -> extismLogDebug offs
120
+ LogInfo -> extismLogInfo offs
121
+ LogWarn -> extismLogWarn offs
122
+ LogError -> extismLogError offs
122
123
123
124
-- Log with "error" level
124
125
logError :: String -> IO ()
@@ -135,3 +136,7 @@ logDebug = Extism.PDK.log LogDebug
135
136
-- Log with "warn" level
136
137
logWarn :: String -> IO ()
137
138
logWarn = Extism.PDK. log LogWarn
139
+
140
+ -- Log with "trace" level
141
+ logTrace :: String -> IO ()
142
+ logTrace = Extism.PDK. log LogTrace
0 commit comments