output.conf
This document applies only to clients using PaludisEnvironment
. Any standard client that supports a
--environment
command line option uses PaludisEnvironment
unless overridden, either by
explicitly selecting another environment (e.g. --environment portage
) or, on distributions also
supporting Portage, by lack of a Paludis configuration and presence of a Portage configuration.
Usually you do not need an output.conf
at all. The defaults are generally fine.
The output.conf
file controls how Paludis handles output from subcommands such as building and
installing a package, or syncing a repository. The basic configuration is set in
$SHAREDIR/environments/paludis/default_output.conf
, and additional configuration can be specified by the
user in output.conf
in the normal configuration directory.
There are currently a few basic settings that can be set in output.conf
:
# always_keep_output_logs may be set to 'true' to always keep output logs, even # if a build succeeds. always_keep_output_logs = false # quiet may be set to 'true' to show only messages, rather than all output, when # carrying out an action. quiet = false # log_path can be set to change where log files are saved. It defaults to # ${root}/var/log/paludis . log_path = ${root}/var/log/paludis
For more advanced usage, two additional variables allow additional output managers to be specified:
# extra_output_managers may be used to define additional output managers that # handle normal output. extra_output_managers = # extra_message_managers may be used to define additional output managers that # handle messages. extra_message_managers =
For example, if you wish to send messages to syslog, you could use:
extra_message_managers = my_syslog_messages [manager my_syslog_messages] handler = command start_command = echo Starting %{action} %{full_name} | logger -t paludis end_command = echo Finished %{action} %{full_name} | logger -t paludis stdout_command = logger -t paludis stderr_command = cat >/dev/null
To keep logs of stderr output, you could use:
extra_output_managers = my_log_stderr [manager my_log_stderr] handler = tee stderr_children = my_log_stderr_file [manager my_log_stderr_file] handler = file filename = ${root}/var/tmp/paludis/%{time}-%{action}-%{full_name}.stderr keep_on_empty = false keep_on_success = true summary_output_manager = format_messages_standard summary_output_message = Stderr: ${filename}
You can also override default output managers. To really confuse everyone, you could use:
[manager standard] handler = command stdout_command = tr -d '\e' | rev stderr_command = tr -d '\e' | rev