Paludis Logo Introduction Hooks general.conf bashrc
Bugs, Requests, Support Syncers keywords.conf / platforms.conf suggestions.conf
Overview Fetchers use.conf / options.conf sets/
FAQ Env Vars licenses.conf / licences.conf repositories/
Clients File Formats mirrors.conf  
Configuration Dep Specs output.conf  
API specpath.conf package_mask.conf  

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