Portage log

When using for building a package, it is not uncommon to notice messages coming from Portage itself. Since they may contain important information from Gentoo developers it is a good idea to read them, but often this is not immediately possible because they rapidly scroll out of the screen. This can be easily solved by enabling a Portage feature called elog, whose purpose is to save messages to disk for later review. But other logging capabilities exist as well...

Portage elog subsystem
The Portage elog subsystem keeps track of specific, ebuild-provided log messages that developers have put in the ebuilds to attract attention of the system administrator or root user. Often, these messages contain important or interesting information related to the build of said package.

Setup
Select which kind of information should be logged through the PORTAGE_ELOG_CLASSES variable. Possible values are,  ,  ,  , and  :

Configuring for file-based storage
Portage can handle the elog events in a number of ways.

In order to save the elog events to disk, enable the  module in the PORTAGE_ELOG_SYSTEM variable:

The messages will be saved in or in  if said variable is set.

In order to create per-category elog files, enable the  Portage feature. It will force Portage to create category-based subdirectories of the location.

Configuring for e-mail
To mail logs to a recipient, enable the  module. The mail option requires some additional variables to be set. Read for more information.

Below, an example setup is shown which is hopefully self-explanatory:

Another example with nullmailer or sendmail:

Related software
The following is a list of elog related software packages:


 * - Curses based utility to parse the contents of elogs.
 * - Python based elog viewer.

Build logs
Package build logs can be saved to disk or mailed to a remote recipient, by setting variables in. This allows system administrators to review builds later.

By default, when is running, Portage temporarily saves the build log of a package to. The build directory will be deleted when finishes successfully, so successful build logs will be lost. If a build fails however, the logs will be retained, so the will still be available for attaching to support tickets.

n.b. The may be followed by an extra extension if   is set in FEATURES. The default PORTAGE_TMPDIR is, adjust path accordingly if it is set to something different in.

Always save build logs
To enable saving build logs, edit and set PORTAGE_LOGDIR to a location where the log files should be stored:

It is customary to choose as the location for log files, because it is where the elog subsystem's  directory would be if PORTAGE_LOGDIR has been previously empty or unset.

A number of FEATURES settings in may be set in which influence how Portage handles build logs:


 * With  set, even binary package deployments will have their logs saved.
 * When  is set, regular log file clean operations are executed. The command that is executed is defined by PORTAGE_LOGDIR_CLEAN and defaults to a retention of the files of 7 days.
 * With  set, build logs are stored in category-named subdirectories of

Until Portage version 2.3.53, PORTAGE_LOGDIR variable used to be named PORT_LOGDIR. This old name is now deprecated.

Cleaning up
When  is enabled in the FEATURES variable of, Portage will execute the command defined by PORTAGE_LOGDIR_CLEAN after every build or unmerge operation. By default, the following command is used:

When defining a custom command, do not forget to escape the PORTAGE_LOGDIR variable (or immediately hard code the right location).

Until Portage version 2.3.53, PORTAGE_LOGDIR_CLEAN variable used to be named PORT_LOGDIR_CLEAN. This old name is now deprecated.

External resources

 * Sven Vermeulen. "Underestimated or underused: Portage (e)logging ", September 25th, 2013. Retrieved on May 30th, 2019.