Skip to content

ts logs ​

Read servers' recent log entries or one service's log, and archive, download, or delete a server's log files. Start with ts logs --level error when something fails and you do not yet know which server or service to look at.

Usage ​

text
ts logs [<server>] [--level=LEVEL] [--tail=N]
ts logs <server> <service> [--tail=N]
ts logs archives <server>
ts logs archive <server>
ts logs download <server> <archive> [--output-file=PATH]
ts logs delete-archive <server> <archive> [--force]

Description ​

The same logs are under Infrastructure → Servers: every server's on the Logs tab, and one server's, with its log archives, on that server's own Logs tab. Name a server as ts servers lists it, in any case.

Recent Entries ​

ts logs prints recent entries from every service on every server, merged and oldest first, so the newest is beside the prompt. Each line carries the time in this machine's time zone, the level, the server and the service, with a stack trace indented beneath its entry. Name a server to see only its services.

Entries are at Warning and above unless --level sets another floor. The newest 500 that match are shown unless --tail asks for another number, up to 5,000, and when more match, ts logs says how many. A service whose log could not be read, such as one on a server that did not respond, is named after the entries with the reason, so a quiet log is not mistaken for a healthy one.

A Service's Log ​

ts logs <server> <service> prints that service's recent log as the service wrote it, and --tail keeps only its last lines. The services follow the server's roles:

  • Controller — Gateway, Controller, Api, Admin, Analytics, UpdateApi, UpdateWeb.
  • Hub — Hub, Tracker.
  • Portal — Portal.
  • Application — AppServer.

Names match in any case. A service the server does not run is refused with the list of those it does. Each service keeps only its last 1,000 lines for these reads; older lines are in its log files on the server, which archive collects.

Log Archives ​

archive has the server zip its log files into a new archive kept on that server, and delete the files it zipped where it can. The archive is named for the machine's host name and the time in UTC, such as turbo-server-logs-hub01-20261021-091502.zip. ts waits until the archive is written; if the wait times out first, the server goes on writing it, and archives lists it once it is done.

archives lists a server's archives, newest first, with their size and creation time in UTC. download saves an archive in the current directory under its name with the server's roles added, such as turbo-server-logs-hub01-20261021-091502-hub.zip. It never overwrites a file of that name; --output-file chooses the path instead, and does overwrite. delete-archive asks first, and --force answers yes.

Archiving and deleting an archive are recorded in the audit log with the acting administrator.

Options ​

FlagDescriptionDefault/ValuesNotes
--levelThe lowest level to show.verbose, debug, information, warning, error, fatal; default warningEntries only. Refused with a service's log, which prints as the service wrote it.
--tailShow only the newest N entries or lines.Entries default to 500, at most 5000With a service's log, its last N lines.
--output-fileWhere download saves the archive.PATHdownload only. Overwrites an existing file.
--force, -fDelete an archive without asking.delete-archive only. Required when there is no terminal.

Examples ​

bash
# What has gone wrong anywhere in the cluster?
ts logs --level error

# The newest 100 entries at Warning and above from one server
ts logs hub01 --tail 100

# The Tracker's own log on hub01, as it wrote it
ts logs hub01 Tracker --tail 50

# Collect hub01's log files for a support case, and save them here
ts logs archive hub01
ts logs download hub01 turbo-server-logs-hub01-20261021-091502.zip

# Save an archive to a path of your choosing
ts logs download hub01 turbo-server-logs-hub01-20261021-091502.zip --output-file=hub01-logs.zip

# Delete an old archive without being asked
ts logs delete-archive hub01 turbo-server-logs-hub01-20261014-170833.zip --force
bash
# --level filters merged entries, not a service's log, so this is refused.
# Use ts logs hub01 --level error, or filter the service's lines yourself.
ts logs hub01 Tracker --level error

Output ​

ts logs --level information --tail 3:

text
2026-10-21 09:12:40 Warning     hub01 Tracker: Announce rejected for an unknown repository
2026-10-21 09:13:05 Error       srv01 Api: Request to the hub timed out
2026-10-21 09:14:22 Information srv01 Gateway: Certificate renewed for turbo.example.com
Showing the newest 3 of 41 entries. --tail <n> shows up to 5,000.
Couldn't read app03 (all services): didn't respond.

ts logs archives hub01:

text
NAME                                         SIZE     CREATED
turbo-server-logs-hub01-20261021-091502.zip  14.2 MB  2026-10-21 09:15
turbo-server-logs-hub01-20261014-170833.zip  9.8 MB   2026-10-14 17:08

archive prints the new archive's name and the download command for it, and download prints the path it saved and its size.

Exit Codes ​

0 on success, including a read that finds no entries. -1 when the command or the server refuses the request: the wrong number of arguments, an option that does not go with the form (--level with a service's log, --output-file without download, --tail below 1), a level that is not one of the six, --tail above 5,000 for entries, an archive name that does not end in .zip, a download that would overwrite a file of the archive's name, a delete declined or run with no terminal and no --force, or a server that fails the call or does not answer in time. -3 when the server cannot be reached, and when archive stops waiting before the archive is written. -4 when no account is signed in. -5 when the account is not a Server Administrator. -6 when no server has that name, the server runs no service of that name, or it has no archive of that name.

  • ts server — The servers and their roles, which decide the services each runs.
  • ts status — Whether a server is answering at all.
  • ts certificate — Let's Encrypt issuance and renewal show in the Gateway log.
  • ts audit — Operator actions, as opposed to what the services log.