# Reading the logs

The lines in the server log that answer the questions an operator asks first.

The server writes one line per event with named fields. Five of them answer most questions: the start line, the two link lines, the placement line and the migration line.

## Scope

The lines of the running server as written to its log.

**Lines worth knowing in serve.log**

```text
liminal server started listen_address=... start_stages=config 0 (0), health 0 (0), auth 0 (0), lys 3252 (3252), ...
inbound link open refused link=seats-to-peer action="link_import" peer=agent-... reason=...
outbound link down; dial will be retried link=seats-to-peer reason=...
TAP_SUBJECT_PLACED subject="console.tap.jobs.studio" network="ablative"
TAP_SUBJECT_JOURNAL_MIGRATED from=.../store-services/console-tap-placements.json to=.../store-console-tap-placements.json
```


## The details

- `liminal server started` carries the listeners and `start_stages`: the milliseconds each stage took, config, health, auth, lys and the services. A slow `lys` stage is the issuer, not the server.
- `inbound link open refused` is written at the accepting end with the link, the action, the peer and the reason. The dialling end counts it under `refused` and retries.
- `outbound link down; dial will be retried` is written at the dialling end with the reason, including a dial the operating system refused.
- `TAP_SUBJECT_PLACED` is written once per subject the server placed in Lys. A quiet second boot writes none.
- `TAP_SUBJECT_JOURNAL_MIGRATED` is written once when a journal written by an earlier binary into the registry directory is moved beside the store.

## Related reading

The counters behind the link lines are on [Health](/liminal/reference/health/).
