Logging

Where server.log is, how to keep it outside a container and how to change log levels.

This is what Zato log lines look like:

2026-07-09 10:28:42,955 - INFO - 54728:MainThread - zato.server.base.parallel:21 - Starting Zato 4.1+rev.907497b5
2026-07-09 10:28:50,378 - INFO - 54728:Dummy-7 - customer.cache - 20260709-082850-3727-a1bbe9814a16cac8a - customer.cache:21 - Refreshed the customer cache, entries: 128

Where the log is

In a container, the server log is here:

/opt/zato/env/qs-1/server1/logs/server.log

The same content goes to the container's standard output, so docker logs shows it as well.

Keeping the log outside the container

Logs are not persistent. A recreated container starts with an empty logs directory, so if you need persistence, mount the logs directory as a volume, such as below using Docker Compose.

services:
  zato:
    image: zatosource/zato:4.1
    volumes:
      - ./logs:/opt/zato/env/qs-1/server1/logs

From there any collector can pick the file up - Loki, Elasticsearch, Splunk, Datadog, whatever you already run - or you can read the container's output directly instead.

Changing the log level

Dashboard has a System → Logging screen with one logger=LEVEL pair per line. Change a level, save, and it applies while the environment runs.

The levels are the standard ones - DEBUG, INFO, WARN, ERROR and CRITICAL.

Learn more