- Component Logging
- Logging scopes
- Controlling output
- Log rotation
- Component debugging
- See also
Component Logging
Istio components are built with a flexible logging framework which provides a number of features and controls tohelp operate these components and facilitate diagnostics. You control these logging features by passingcommand-line options when starting the components.
Logging scopes
Logging messages output by a component are categorized by scopes. A scope represents a set of related log messages whichyou can control as a whole. Different components have different scopes, depending on the features the componentprovides. All components have the default
scope, which is used for non-categorized log messages.
As an example, as of this writing, Mixer has 5 scopes, representing different functional areas within Mixer:
adapters
api
attributes
default
grpcAdapter
Pilot, Citadel, and Galley have their own scopes which you can discover by looking at their reference documentation.
Each scope has a unique output level which is one of:
- none
- error
- warning
- info
- debugwhere
none
produces no output for the scope, anddebug
produces the maximum amount of output. The default level for all scopesisinfo
which is intended to provide the right amount of logging information for operating Istio in normal conditions.
To control the output level, you use the —log_output_level
command-line option. For example:
$ mixs server --log_output_level attributes=debug,adapters=warning
In addition to controlling the output level from the command-line, you can also control the output level of a running componentby using its ControlZ interface.
Controlling output
Log messages are normally sent to a component’s standard output stream. The —log_target
option lets you direct the output toany number of different locations. You give the option a comma-separated list of file system paths, along with the specialvalues stdout
and stderr
to indicate the standard output and standard error streams respectively.
Log messages are normally output in a human-friendly format. The —log_as_json
option can be used to force the output into JSON,which can be easier for tools to process.
Log rotation
Istio components can automatically manage log rotation, which make it simple to break up large logs into smaller log files.The —log_rotate
option lets you specify the base file name to use for rotation. Derived names will be used for individuallog files.
The —log_rotate_max_age
option lets you specify the maximum number of days before file rotation takes place, while the —log_rotate_max_size
optionlet you specify the maximum size in megabytes before file rotation takes place. Finally, the —log_rotate_max_backups
option lets you controlthe maximum number of rotated files to keep, older files will be automatically deleted.
Component debugging
The —log_caller
and —log_stacktrace_level
options let you control whether log information includesprogrammer-level information. This is useful when trying to track down bugs in a component but is notnormally used in day-to-day operation.
See also
Component Introspection
Describes how to use ControlZ to get insight into individual running components.