Component Logging

    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 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

    Each scope has a unique output level which is one of:

    • none
    • error
    • warning
    • info

    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.

    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 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.

    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.

    The 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.