CLI Logging - Wasmtime

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# 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 to `1`, removes the time, level and target from output.