wasmedge-hs-0.17.1.0: Haskell bindings for the WasmEdge WebAssembly runtime
Copyright(c) 2026 Tushar Adhatrao
LicenseMIT
Stabilitystable
Safe HaskellNone
LanguageGHC2021

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

Log levels

data LogLevel #

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

Instances details
Bounded LogLevel # 
Instance details

Defined in WasmEdge.Log

Enum LogLevel # 
Instance details

Defined in WasmEdge.Log

Show LogLevel # 
Instance details

Defined in WasmEdge.Log

Eq LogLevel # 
Instance details

Defined in WasmEdge.Log

Ord LogLevel # 
Instance details

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.

logOff :: IO () #

Disable all logging output.

Custom callback

data LogMessage #

A structured log message delivered to a custom log callback.

Constructors

LogMessage 

Fields

Instances

Instances details
Show LogMessage # 
Instance details

Defined in WasmEdge.Log

Eq LogMessage # 
Instance details

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.