I just wanted to update everyone that we’ve made a subtle switch to
our dependencies that affects the master branch. We are now linking
against log4cpp instead of log4cxx.
Most of you probably won’t even notice the change. We only recently
added the gr_logger tool into GNU Radio (last week, I think), and I
only mentioned it briefly in a reply email on the list. I would guess
that unless you’re paying close attention, most haven’t noticed this
addition. I hope you also, then, won’t notice the change.
We originally based the logger on the library log4cxx. But soon after
pushing it, we noticed that certain applications that linked against
GNU Radio would segfault on exiting. Looking into it, it’s a small but
important bug in the way a singleton is handled in this library. It
doesn’t seen to have any impact on GNU Radio itself, though, so we
never noticed it while putting it together.
We made a quick switch from log4cxx to log4cpp. While missing a few
features, this switch does help us in two particular ways: 1. it fixes
the segfault, and 2. it removes the need to pull in libapr as a
We try not to make any changes like this once something is in master.
But I thought that a segmentation fault necessitated the change.
For those who care, the logging capability is turned on by default,
but defaults to just using stdout/stderr. Only if it finds log4cpp
will it switch to using it. So it’s a completely optional addition to
GNU Radio that we are going to try to employ as our default way of
handling errors, warnings, and any other messages we might output from
GNU Radio. The Doxygen manual has a page called “Logging” that
discusses how to make use of this new feature.
Thanks and sorry if this inconveniences anyone.