--- layout: docs page_title: 'Commands: alloc logs' description: | Stream the logs of a task. --- # Command: alloc logs **Alias: `nomad logs`** The `alloc logs` command displays the log of a given task. ## Usage ```plaintext nomad alloc logs [options] ``` This command streams the logs of the given task in the allocation. If the allocation is only running a single task, the task name can be omitted. Optionally, the `-job` option may be used in which case a random allocation from the given job will be chosen. Task name may also be specified using the `-task` option rather than a command argument. If task name is given with both an argument and the `-task` option, preference is given to the `-task` option. When ACLs are enabled, this command requires a token with the `read-logs`, `read-job`, and `list-jobs` capabilities for the allocation's namespace. ## General Options @include 'general_options.mdx' ## Logs Options - `-stdout`: Display stdout logs. This is used as the default value in all commands except when using the `-f` flag where both stdout and stderr are used as default. - `-stderr`: Display stderr logs. - `-verbose`: Display verbose output. - `-job`: Use a random allocation from the specified job, preferring a running allocation. - `-task`: Specify the task to view the logs. - `-f`: Causes the output to not stop when the end of the logs are reached, but rather to wait for additional output. When supplied with no other flags except optionally `-job` and `-task`, both stdout and stderr logs will be followed. - `-tail`: Show the logs contents with offsets relative to the end of the logs. If no offset is given, -n is defaulted to 10. - `-n`: Sets the tail location in best-efforted number of lines relative to the end of the logs. - `-c`: Sets the tail location in number of bytes relative to the end of the logs. Note that the `-no-color` option applies to Nomad's own output. If the task's logs include terminal escape sequences for color codes, Nomad will not remove them. ## Examples ```shell-session $ nomad alloc logs eb17e557 redis foobar baz bam $ nomad alloc logs -stderr eb17e557 redis [ERR]: foo [ERR]: bar $ nomad alloc logs -job example [ERR]: foo [ERR]: bar $ nomad alloc logs -tail -n 2 eb17e557 redis foobar baz $ nomad alloc logs -tail -f -n 3 eb17e557 redis foobar baz bam ``` Specifying task name with the `-task` option: ```shell-session $ nomad alloc logs -task redis eb17e557 ``` If task name is specified using both options, the command argument is ignored. The following will output the logs from the "redis" task only, not the "api" task: ```shell-session $ nomad alloc logs -task redis eb17e557 api ``` ## Using Job ID instead of Allocation ID Setting the `-job` flag causes a random allocation of the specified job to be selected. Nomad will prefer to select a running allocation ID for the job, but if no running allocations for the job are found, Nomad will use a dead allocation. ```plaintext nomad alloc logs -job ``` Choosing a specific allocation is useful for debugging issues with a specific instance of a service. For other operations using the `-job` flag may be more convenient than looking up an allocation ID to use.