Logging in production

Orchestrate is composed by multiple containers and each of them will generate their own log. These logs are written on the standard output.

Orchestrate uses logrus for logging, which is a structured logger for Go (golang).

Note

Orchestrate follows the Twelve-Factor App logging best practices, meaning this that “in staging or production deploys, each process’ stream will be captured by the execution environment, collated together with all other streams from the app, and routed to one or more final destinations for viewing and long-term archival. These archival destinations are not visible to or configurable by the app, and instead are completely managed by the execution environment”.

Log Level configuration

Valid log levels on Orchestrate are panic, fatal, error, warn, info, debug, trace. The default level is info. As each container keeps its own log, Log Level must be set for each of them.

Important

The following flags are present in each container and will have to be set independently when configuring each of them.

Global Flags:
     --log-format string   Log formatter (one of ["text" "json"]).
                         Environment variable: "LOG_FORMAT" (default "text")
     --log-level string    Log level (one of ["panic" "fatal" "error" "warn" "info" "debug" "trace"]).
                         Environment variable: "LOG_LEVEL" (default "debug")

Trace: Finer-grained informational events than the Debug.

Debug: Fine-grained informational events that are most useful to debug an application.

Info: (default) Informational messages that highlight the progress of the application at coarse-grained level.

Warn: Potentially harmful situations.

Error: Error events that might still allow the application to continue running.

Fatal: Very severe error events that will presumably lead the application to abort.

Panic: Severe error events presumably leading to Fatal errors.

Important

Please refer to Containers configuration documentation.