Apache Log4cxx  Version 2.0.0
Loading...
Searching...
No Matches
Log4cxx Dependencies

As of version 0.12.0, Log4cxx requires a minimum C++ version of C++11.

Log4cxx requires the following software to build and/or run correctly:

Dependency Name Version Dependency Type Homepage
Apache Portable Runtime(APR) >=1.5.4 Compile/Runtime https://apr.apache.org
APR-Util >=1.5.4 Compile/Runtime https://apr.apache.org
gzip any Test/Runtime(optional) https://gzip.org
sed any Test N/A
zip any Test/Runtime(optional) N/A

APR+APR-Util

The Apache Portable Runtime(APR) provides the cross-platform backend for Log4cxx. Both APR and APR-util need to be installed and available on your system.

sed+gzip+zip

These applications are needed to test Log4cxx. gzip and sed are generally installed by default on Linux. zip may not be installed by default; check your distribution's documentation for information on how to install these applications.

For Windows, you will have to install those tools through a system such as MinGW, cygwin, or MSYS2.

gzip and zip only needed during runtime if you are compressing the log files, for example by setting a rollover policy which ends in .gz or .zip.

Using std::format instead of fmt::format

The LOG4CXX_XXXXX_FMT logging macros use the macro LOG4CXX_FORMAT_NS to select the format function version.

Use the CMake option LOG4CXX_FORMAT_NAMESPACE=std to set the default value for LOG4CXX_FORMAT_NS to std. If LOG4CXX_FORMAT_NAMESPACE is not specified when Log4cxx is built, the default value for LOG4CXX_FORMAT_NS is fmt.

Setting LOG4CXX_FORMAT_NAMESPACE=std when building Log4cxx does not prevent an application from using the {fmt} library. An application developer can choose the implementation by adding LOG4CXX_FORMAT_NS=std or LOG4CXX_FORMAT_NS=fmt to the target_compile_definitions command in their CMakeLists.txt. If that preprocessor macro is absent, the LOG4CXX_XXXXX_FMT logging macros will expand to the default value of LOG4CXX_FORMAT_NS defined when Log4cxx was built.

Optional Dependencies

The following table lists CMake options that require additional dependencies.

CMake option Dependency Name Version Dependency Type Homepage
LOG4CXX_MULTIPROCESS_ROLLING_FILE_APPENDER Boost any Compile/runtime. Not required if your compiler supports C++17 https://boost.org
ENABLE_FMT_ASYNC {fmt} 9+ Compile/runtime https://github.com/fmtlib/fmt
ENABLE_FMT_LAYOUT {fmt} 9+ Compile/runtime https://github.com/fmtlib/fmt
LOG4CXX_ENABLE_ODBC unixodbc any Compile/runtime (not on Windows) https://www.unixodbc.org/
LOG4CXX_ENABLE_ESMTP libesmtp any Compile/runtime (not on Windows) https://github.com/libesmtp/libESMTP
LOG4CXX_QT_SUPPORT Qt 5 Compile/runtime https://www.qt.io/download
LOG4CXX_CFSTRING Mac OS/X Core Foundation any Compile/runtime https://developer.apple.com/documentation/corefoundation

Default CMake option values

All the above CMake options default to OFF except for the {fmt} library options.

If the {fmt} library is found (by find_package(fmt 7.1 QUIET)) when Log4cxx is built, the options ENABLE_FMT_ASYNC and ENABLE_FMT_LAYOUT default to ON.

Licenses(direct dependencies only)

Dependency License
APR, APR-util Apache License, Version 2.0
{fmt} MIT
unixodbc LGPL
libesmtp LGPL
Qt Refer https://www.qt.io/licensing/
Mac OS/X Core Foundation APSL 2.0