| Copyright | (c) 2026 Tushar Adhatrao |
|---|---|
| License | MIT |
| Stability | stable |
| Safe Haskell | None |
| Language | GHC2021 |
WasmEdge.Log
Description
Configure the WasmEdge logging system. The logging system is a global singleton — configuration affects all WasmEdge operations in the process.
Example:
import WasmEdge.Log main :: IO () main = do setLogLevel Error -- ... run WasmEdge operations ... logOff -- silence all output
Synopsis
- data LogLevel
- setLogLevel :: LogLevel -> IO ()
- setLogError :: IO ()
- setLogDebug :: IO ()
- logOff :: IO ()
- data LogMessage = LogMessage {
- logMsgText :: !Text
- logMsgLogger :: !Text
- logMsgLevel :: !LogLevel
- setLogCallback :: (LogMessage -> IO ()) -> IO ()
- clearLogCallback :: IO ()
Log levels
The WasmEdge log verbosity level.
Constructors
| LogTrace | Trace-level (most verbose) |
| LogDebug | Debug-level |
| LogInfo | Informational |
| LogWarn | Warnings only |
| LogError | Errors only |
| LogCritical | Critical errors only |
Instances
| Bounded LogLevel # | |
| Enum LogLevel # | |
| Show LogLevel # | |
| Eq LogLevel # | |
| Ord LogLevel # | |
Defined in WasmEdge.Log | |
Level control
setLogLevel :: LogLevel -> IO () #
Set the global log level.
setLogError :: IO () #
Shortcut: set log level to LogError.
setLogDebug :: IO () #
Shortcut: set log level to LogDebug.
Custom callback
data LogMessage #
A structured log message delivered to a custom log callback.
Constructors
| LogMessage | |
Fields
| |
Instances
| Show LogMessage # | |
Defined in WasmEdge.Log Methods showsPrec :: Int -> LogMessage -> ShowS # show :: LogMessage -> String # showList :: [LogMessage] -> ShowS # | |
| Eq LogMessage # | |
Defined in WasmEdge.Log | |
setLogCallback :: (LogMessage -> IO ()) -> IO () #
Set a custom log callback. The callback replaces any previously set one.
The old callback's FunPtr is freed automatically.
The raw C struct layout of WasmEdge_LogMessage is:
typedef struct WasmEdge_LogMessage {
WasmEdge_String Message; // offset 0
WasmEdge_String LoggerName; // offset 16
WasmEdge_LogLevel Level; // offset 32
time_t Time; // offset 36 (platform-dependent)
uint64_t ThreadId; // ...
} WasmEdge_LogMessage;
We parse the relevant fields via fixed offsets.
clearLogCallback :: IO () #
Remove the custom log callback and restore default logging.