Logging and Log levels

Build logs

When executing Maven builds, buildozer always uses the maximum logging level of Maven by passing it the "-X" option.

It would be very confusing to pass all this information to the user, because this log contains a lot of information that is completely unuseful most of the time.

Instead, buildozer filters the log and tries to understand it. It uses several patterns and other tricks to extract information that it considers important, and passes it to the user. But each such information can be important at different level of user-selected verbosity; for instance, user is quite always interested in why a specific module failed, but he rarely cares which goal is currently being executed. So buildozer has "its own" idea of what is important and how much, and passes the information to logger at a certain level.

Then it's up to the user to select the log verbosity.

However, the detailed log of each single module build is stored separately, and user can examine it to understand a failure. When a module fails, buildozer shows complete path to corresponding log file.

Log Levels

log levelshort optiondescription
TRACE-vvcontains a lot of information typically not very useful. You should choose this only when trying to understand why buildozer decided somehow in a specific case.
DEBUG-vcan be sometimes useful as it tracks currently executed goals and more useful information.
INFOis the default level. Shows name of current module and few important information
WARNING-qshows just warnings
ERROR-qqjust errors; note that many errors are considered errors just because it is marked so in the Maven's log, but often it is recoverable.

Progress logging

Option -p turns on "progress logging" mode on Linux.

Progress logging here means showing messages from one loglevel lower from currently selected one on the current line; this line gets replaced by next coming one, or cleared at the end.

This gives user more information about what's happening.

It is not supported on Windows (and has undefined behavior there) because it uses ANSI sequences to show the progress line.