Logging

Yamcs Server writes log output to the directory /opt/yamcs/log.

yamcs-server.log.x

Log files usually provide the best debug information. These contain log entries that are emitted by any of the Yamcs components with a fine level of detail.

Log files are rotated at 20MB with a maximum of 50 files. The theoretic maximum of disk space is therefore 1GB. x is a sequence number. The lower the number, the more recent the logs. The most recent log file can always be found at /opt/yamcs/log/yamcs-server.log.0. Note that when Yamcs Server is restarted the log files will always rotate even if yamcs-server.log.0 had not yet reached 20MB.

yamcs-server.out.x

Out files are directly captured from the process standard output and error streams. The logging level is typically less detailed then with yamcs-server.log.x, but the files may contain stdout and stderr output which does not make use of Yamcs’ logging system.

Out files are rotated over a maximum of 5 files. There is no size restriction on the file, but since the logging is not so detailed, the files do not grow very large. x is a sequence number. The lower the number, the more recent the logs. The most recent out file can always be found at /opt/yamcs/log/yamcs-server.out.0. Note that when Yamcs Server is restarted the out files will always rotate.

Configuration

The logging properties of Yamcs Server may be adjusted to your specific situation. This is done by modifying the file /opt/yamcs/etc/logging.yamcs-server.properties. The file structure is defined by the standard Java logging framework and requires a bit of background with Java development. There are two handlers. A FileHandler defines the properties used for logging to /opt/yamcs/log/yamcs-server.log.x. A ConsoleHandler can be used to tweak output for logging to /opt/yamcs/log/yamcs-server.out.x. The rotation of out files is not configured in this file, since this occurs at the level of the init system where the Yamcs process is managed.

Yamcs comes with different log formatters that can be useful in different situations:

  • org.yamcs.CompactFormatter outputs one line per log entry and contains detailed datetime information, thread id, severity, logger name (typically the class of the originating component), a log message and finally an optional stack trace.

  • org.yamcs.ConsoleFormatter outputs one line per log entry and is actually more compact than CompactFormatter. It is especially suited for development of Yamcs or its extensions. Each log entry contains short time information, thread id, short class name, a log message and optionally a stack trace. Some entry fields make use of ANSI color codes for colorized display inside the developer’s terminal.