# fx log

listen for logs from the on-device log\_listener

```none
usage: fx log [-h | --help] [--raw] [-r | --remote-symbols] LOG_LISTENER_FLAGS

   --raw                   do not attempt to symbolize the log

   --remote-symbols|-r     attempt to resolve symbols using predefined remote
                           symbol servers for symbols that cannot be resolved
                           locally. See `fx help symbolize` for more
                           information on remote symbol servers.

   --help|-h               show this help and attempt to also show the
                           on-device log_listener help

   LOG_LISTENER_FLAGS      flags (e.g., severity) to pass to the on-device
                           log_listener; supported flags are listed at
                           https://fuchsia.dev/fuchsia-src/reference/diagnostics/consumers/log_listener.

Creates an SSH connection with a device and starts listening for logs.
It will listen to the device specified with `fx -d DEVICE log` or
`fx set-device`, otherwise it will try to find a connected device.

If the command hangs without printing anything, first check to make sure `fx shell`
works on its own.

For more information on flags supported by the on-device log_listener, see
https://fuchsia.dev/fuchsia-src/reference/diagnostics/consumers/log_listener.
```

[log source code](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/devshell/log)
