This page has moved to https://docs.nats.io.
Click here if you are not redirected.
The NATS server provides various logging options that you can set via the command line or the configuration file.
The following logging operations are supported:
-l, --log FILE File to redirect log output.
-T, --logtime Timestamp log entries (default is true).
-s, --syslog Enable syslog as log method.
-r, --remote_syslog Syslog server address.
-D, --debug Enable debugging output.
-V, --trace Trace the raw protocol.
-DV Debug and Trace.
-DV flag enables trace and debug for the server.
nats-server -DV -m 8222 -user foo -pass bar
nats-server -DV -m 8222 -l nats.log
-T false then log entries are not timestamped. Default is true.
You can configure syslog with
nats-server -s udp://localhost:514
nats-server -r syslog://<hostname>:<port>
All of these settings are available in the configuration file as well.
NATS server does not provide tools to manage log files, but it does include mechanisms that make log rotation simple. We can use this mechanism with logrotate; a simple standard Linux utility to rotate logs available on most distributions like Debian, Ubuntu, RedHat (CentOS), etc.
For example, you could configure
kill -SIGUSR1 `cat /var/run/nats-server.pid`
The first line specifies the location that the subsequent lines will apply to.
The rest of the file specifies that the logs will rotate daily ("daily" option) and that 30 older copies will be preserved ("rotate" option). Other options are described in logrorate documentation.
The "postrotate" section tells NATS server to reload the log files once the rotation is complete. The command
kill -SIGUSR1 `cat /var/run/nats-server.pid` does not kill the NATS server process, but instead sends it a signal causing it to reload its log files. This will cause new requests to be logged to the refreshed log file.
/var/run/nats-server.pid file is where NATS server stores the master process's pid.
- The NATS server, in verbose mode, will log the receipt of
UNSUBmessages, but this does not indicate the subscription is gone, only that the message was received. The
DELSUBmessage in the log can be used to determine when the actual subscription removal has taken place.