Logging in the wasmtime
CLI
Wasmtime's libraries use Rust's log
crate to log diagnostic information, and the wasmtime
CLI executable uses tracing-subscriber
for displaying this information on the console.
Basic logging is controlled by the WASMTIME_LOG
environment variable. For example, To enable logging of WASI system calls, similar to the strace
command on Linux, set WASMTIME_LOG=wasmtime_wasi=trace
. For more information on specifying filters, see tracing-subscriber's EnvFilter docs.
$ WASMTIME_LOG=wasmtime_wasi=trace wasmtime hello.wasm [...] TRACE wiggle abi{module="wasi_snapshot_preview1" function="fd_write"} wasmtime_wasi::preview1::wasi_snapshot_preview1 > fd=Fd(1) iovs=*guest 0x14/1 Hello, world! TRACE wiggle abi{module="wasi_snapshot_preview1" function="fd_write"}: wasmtime_wasi::preview1::wasi_snapshot_preview1: result=Ok(14) TRACE wiggle abi{module="wasi_snapshot_preview1" function="proc_exit"}: wasmtime_wasi::preview1::wasi_snapshot_preview1: rval=1 TRACE wiggle abi{module="wasi_snapshot_preview1" function="proc_exit"}: wasmtime_wasi::preview1::wasi_snapshot_preview1: result=Exited with i32 exit status 1
Wasmtime can also redirect the log messages into log files, with the -D log-to-files
option. It creates one file per thread within Wasmtime, with the files named wasmtime.dbg.*
.
Additional environment variables that work with WASMTIME_LOG
(not -D log-to-files
):
WASMTIME_LOG_NO_CONTEXT
: if set to1
, removes the time, level and target from output.