You may notice with
colcon-common-extensions installed there’s not much output to the console when you run
colcon build or
The log output isn’t lost; it was written to the
--event-handlers argument can be used to output build logs to the console.
colcon build --event-handlers console_direct+ or
colcon test --event-handlers console_direct+ will output everything in real time.
Let’s look at the
log directory from What is a Workspace?.
log ├── build_2022-05-20_11-50-03 │ ├── events.log │ ├── foo │ │ ├── command.log │ │ ├── stderr.log │ │ ├── stdout.log │ │ ├── stdout_stderr.log │ │ └── streams.log │ └── logger_all.log ├── COLCON_IGNORE ├── latest -> latest_build ├── latest_build -> build_2022-05-20_11-50-03 ├── latest_test -> test_2022-05-20_11-50-05 └── test_2022-05-20_11-50-05 ├── events.log ├── foo │ ├── command.log │ ├── stderr.log │ ├── stdout.log │ ├── stdout_stderr.log │ └── streams.log └── logger_all.log
build_<date and time> contains all logs from the invocation of
test_<date and time> contains all the logs from the invocation of
On platforms that support symbolic links,
latest_build points to the most recent build, and
latest_test does the same for tests.
More generally, any verb that generates logs (e.g.
test-result) will put them into a subdirectory named
<verb>_<date and time>.
latest_<verb> will point to the logs of the most recent invocation of that verb.
The symbolic link
latest will point to the most recent logs for any colcon verb.
<verb>_<date and time> directory has these files:
events.logcontains all internal events dispatched. This file is mostly for debugging purposes.
logger_all.logcontains all logging messages regardless of the log level. The first line of this file contains the exact command line invocation including all the arguments passed.
<verb>_<date and time> directory has a
More generally, a directory for every package is created.
Package log directories have these files:
command.logcontains the commands invoked for the package, e.g. calls to
stdout.logcontains all the output printed to
stderr.logcontains all the output printed to
stdout_stderr.logcontains all the output printed to either
stderrin the order they appeared.
streams.logcombines the output of all log files in the order they appeared.
colcon does its best to read concurrently from
stderr to preserve the order, but it can’t guarantee correct order of log messages in all cases.