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).
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
trace. The default level is
info. As each container keeps its own log,
Log Level must be set for each of them.
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.
Please refer to Containers configuration documentation.