Merge ~athos-ribeiro/ubuntu/+source/log4cplus:add-symbols into ubuntu/+source/log4cplus:ubuntu/devel

Proposed by Athos Ribeiro
Status: Merged
Approved by: git-ubuntu bot
Approved revision: not available
Merged at revision: 7d57d7459750bce99d4a819fae0b34119f13394e
Proposed branch: ~athos-ribeiro/ubuntu/+source/log4cplus:add-symbols
Merge into: ubuntu/+source/log4cplus:ubuntu/devel
Diff against target: 1218 lines (+1110/-4)
15 files modified
debian/changelog (+11/-0)
debian/control (+2/-1)
debian/export-map.ld (+9/-0)
debian/liblog4cplus-2.0.5.lintian-overrides (+0/-2)
debian/liblog4cplus-2.0.5.symbols (+807/-0)
debian/liblog4cplus-2.0.5.symbols.optional (+91/-0)
debian/rules (+2/-1)
debian/tests/control (+2/-0)
debian/tests/examples/hello.cpp (+19/-0)
debian/tests/examples/hello.expected (+1/-0)
debian/tests/examples/loglevel.cpp (+55/-0)
debian/tests/examples/loglevel.expected (+33/-0)
debian/tests/examples/macros.cpp (+47/-0)
debian/tests/examples/macros.expected (+14/-0)
debian/tests/run-examples (+17/-0)
Reviewer Review Type Date Requested Status
git-ubuntu bot Approve
Andreas Hasenack Approve
Canonical Server Reporter Pending
Review via email: mp+437047@code.launchpad.net

Description of the change

Adding symbols file to the package as a requirement for its promotion to main.

Since it is yet another main inclusion requirement, I am also adding DEP8 tests to the package as part of this MP. The tests are all based on upstream simple examples and are currently passing locally.

PPA: https://launchpad.net/~athos-ribeiro/+archive/ubuntu/log4cplus-symbols/+packages

To post a comment you must log in.
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Ugh, I have no idea where to begin reviewing the symbols change. What other packages have you inspected so far that have c++ libraries and ship symbols?

Can you do a quick tl;dr on what the problem with c++ symbols is, and the approaches we have to deal with them, considering a sample of such packages that exist in the archive today?

Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

I started with both [1] and [2] which are the actual docs for symbols files. [1] has some interesting references for the C++ special case [3].

In special, as described in [4],

> "They also don't use symbol export control, which means that the number of exported symbols is quite large and contains a lot of things leaked from internal objects".

For this specific package, by checking the package changelog and commit history [5], we see that Debian decided to move from an automake/libtool to a cmake/pkgconfig approach.

While both approaches are supported by the upstream project, they claim that autotools is the primary build system for unix like platforms [6].

The issue here is that the upstream project has some filters in place to avoid leaking exported symbols when building with autotools, which is not available for cmake AFAICT. The side effect is that we have lots of symbols leaking. I am addressing the issue with the filter being added in this patch.

There was no single specific package I looked at while preparing this MP. I did use debian code search to check other C++ packages with symbols files using both libtool and pkgconfig. In the end, most if the C++ libs I checked did not ship a symbols file and would just use shlibs instead.

[1] https://wiki.debian.org/UsingSymbolsFiles
[2] https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#the-symbols-system
[3] https://wiki.debian.org/UsingSymbolsFiles#C.2B-.2B-_libraries
[4] https://www.eyrie.org/~eagle/journal/2012-02/001.html
[5] https://salsa.debian.org/debian/log4cplus/-/blob/master/debian/changelog#L47-49
[6] https://salsa.debian.org/debian/log4cplus/-/tree/master/#build-system

Revision history for this message
Andreas Hasenack (ahasenack) wrote (last edit ):

Thanks for the links, I'm going through them all.

So far I got the part about what the (c++) flag means, and how c++filt is used in this whole process.

Now checking the particularities of this package regarding all that. Stay tuned.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

So when using autotools, the libtool -export-symbols-regex flag is used, with a value of just 'log4cplus'. I also checked, and couldn't find something equivalent in the cmake world, unless maybe we make it call libtool/ltmain.sh at some point, which sounds risky, unless we are sure about where to make that call in the whole build process.

Then indeed, the other option is a linker flag, and gnu's ld has --version-script which can be given a map file. I had never heard about this before, good job :)

I found this documentation about it: https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html

I learned that when using the 'extern "C++"' construct the rules apply to the demangled C++ names, which is handy.

But that page doesn't explain the globbing rules, like "*" and "?". The ld manpage also doesn't help much, as it just refers to a section called VERSION for more details, but I couldn't find that section (also not in the info pages).

I then found Ulrich's paper (https://www.akkadia.org/drepper/dsohowto.pdf) on DSO, and it also has some brief examples on ld version scripts.

While I was reading all that, I wrote down some questions that popped to my mind:

- have you done a test build of isc-kea with this new liblog4cplus package with the symbols file? Are the dependencies ok after that, no surprises? Perhaps a test build with its only other rdeps: openvdb?

- have you compared the symbols you get with an autotools build, versus this cmake build with the --version-script? This would require changing the package to use autotools again, then generate its symbols, and then compare. I understand it's a lot of work, but I'm interested to know how you came up with the globbing rules you have in export-map.ld. Did you apply the regexp manually to the generated symbols file and saw what was left?

- Ulrich's paper mentions this bit when it talks about the 'extern "C++"' block:
"""
And one last oddity should be mentioned: currently the linker requires that
there is no semicolon after the last entry in the C++ block.
"""

Granted, this paper is from 2011, so maybe that changed by now, but he means this:

diff --git a/debian/export-map.ld b/debian/export-map.ld
index 10f2924..c0406e8 100644
--- a/debian/export-map.ld
+++ b/debian/export-map.ld
@@ -3,7 +3,7 @@
     # Apply symbols export regex as performed with libtool
     log4cplus*;
     *for?log4cplus*;
- *to?log4cplus*;
+ *to?log4cplus*
   };
   local: *;
 };

Have you seen any issues around that?

In the meantime, I'll keep looking for the specification for this --version-script file contents.

Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Thanks, Andreas.

The official docs for ld are hosted in
https://sourceware.org/binutils/docs-2.40/ld.html. There is a link to this page in the end of the official binutils page at https://www.gnu.org/software/binutils/

In https://sourceware.org/binutils/docs-2.40/ld.html#VERSION, you will find the following snippet:

> The wildcard patterns available are the same as those used in the shell when matching filenames (also known as “globbing”). However, if you specify the symbol name inside double quotes, then the name is treated as literal, rather than as a glob pattern.

Which is the best documentation I could find for the globbing patterns, which should answer your questions regarding the accepted format.

In the same page, right above the paragraph containing that quote above, you will find the following example:

VERS_1.1 {
  global:
   foo1;
  local:
   old*;
   original*;
   new*;
};

VERS_1.2 {
   foo2;
} VERS_1.1;

VERS_2.0 {
   bar1; bar2;
  extern "C++" {
   ns::*;
   "f(int, double)";
  };
} VERS_1.2;

Which does use semicolons after the last entry in a c++ block. I also found no issues with this construct.

As for the test builds, I pushed both kea and openvdb to https://launchpad.net/~athos-ribeiro/+archive/ubuntu/log4cplus-symbols/+packages.

Finally, I did not compare the symbols with the ones exported by autotools. I came up with the globs for the filter by first applying the same regex applied by upstream for the libtool symbols regex param. Then I realized some symbols from other libraries were still leaking, and kept filtering them by extending the version script.

I will work on a local version of the package using autotools and libtool so we can compare the symbol files.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Ok, so this globbing:

  *for?log4cplus*

Is catching stuff like

  typeinfo name for log4cplus::TTCCLayout@Base

And this one:

  *to?log4cplus*

is for things like

  virtual thunk to log4cplus::SocketAppender::ctcGetAccessMutex() const@Base

Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :
Download full text (4.6 KiB)

I could perform a local build with autotools and libtool. After demangling the new (libtool based) symbols file, here are my findings for the symbols generated in x86_64. It is important to note hera that, for comparison purposes, I just removed the arch specific options from the current (cmake based) symbols file (e.g., (c++|SOMETHING) was converted to (c++) ).

These are the symbols that are only present in the __libtool__ build:

$ comm -13 /tmp/pkgconfig-based.symbols /tmp/libtool-based.symbols
(c++)"std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#1}>(void (std::__future_base::_State_baseV2::*&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*))::{lambda()#1}::_FUN()@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"std::_Sp_make_shared_tag::_S_ti()::__tag@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo for std::__future_base::_State_baseV2@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo for std::__future_base::_Task_state_base<void ()>@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo for std::_Mutex_base<(__gnu_cxx::_Lock_policy)2>@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo for std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo name for std::__future_base::_Result<void>@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo name for std::__future_base::_State_baseV2@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo name for std::__future_base::_Task_state_base<void ()>@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo name for std::_Mutex_base<(__gnu_cxx::_Lock_policy)2>@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo name for std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo name for std::_Sp_counted_ptr_inplace<std::packaged_task<void ()>, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo name for std::_Sp_make_shared_tag@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"typeinfo name for std::thread::_State_impl<std::thread::_Invoker<std::tuple<progschj::ThreadPool::start_worker(unsigned long, std::unique_lock<std::mutex> const&)::{lambda()#1}> > >@Base" 2.0.8-1ubuntu1~ppa1
 (c++)"void std::__exception_ptr::__dest_thunk<std::future_error>(void*)@Base" 2.0.8-1ubuntu1~ppa1

All of them seem to be leaked symbols (there are no definitions for any o...

Read more...

Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Updated with the new symbols file

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

> Still, the PPA build reports "Performing Test HAVE_ATTRIBUTE_VISIBILITY - Success". However, the
> -fvisibility=hidden flag is not being passed during build time.

I think this is the equivalent of this configure check:
  checking for __attribute__((visibility("default"))) and __attribute__((visibility("hidden")))... yes

CMake defines this option, and looks like it's enabled by default:
option(ENABLE_SYMBOLS_VISIBILITY
  "Enable compiler and platform specific options for symbols visibility"
  ON)

But I don't see it mentioned, or used, anywhere else.

In the autoconf build, I also didn't see the use of the libtool -export-symbols-regex option. It's wrapper in some m4 macro checks, and I think it's only used when "cxx_compiler_vendor" is not gnu nor sun.

And the autotools/autoconf build does set -fvisibility=hidden, whereas cmake does not. So +1 on adding -fvisibility=hidden.

I'll check the added symbols file now.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Thanks Athos, that's a lot of work on this MP, and I learned a lot while reviewing it too.

As discussed, you ran a rebuild of rdeps in a PPA, and also tried the un-rebuilt rdeps live with the rebuilt version of liblog4cplus, to see if they were going to complain about missing symbols, and that all seems fine.

You also filed the FFe[1], and I think the only thing missing now is to mention that bug in the d/changelog file somewhere. And plan on how to send this to Debian :)

Maybe create a Salsa PR while we wait for the FFe approval? Even though it looks like "adding symbols file for a C++ library" is the kind of change that could be rejected right away ;)

+1

1. https://bugs.launchpad.net/ubuntu/+source/log4cplus/+bug/2008730

review: Approve
Revision history for this message
git-ubuntu bot (git-ubuntu-bot) wrote :

Approvers: athos-ribeiro, ahasenack
Uploaders: athos-ribeiro, ahasenack
MP auto-approved

review: Approve
Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Thanks, Andreas!

I mentioned the FFe bug in the changelog for the entry which is actually changing the list of symbols being exported.

I will forward the delta in 2 different MRs (I also already forwarded the dep8 tests in a salsa MR):

 - Setting the -fvisibility=hidden build flag. I should probably forward this upstream as well
 - Symbols files (as you said, this could be rejected right away, but it would be nice to discuss it with the maintainer).

Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Uploaded

Uploading to ubuntu (via ftp to upload.ubuntu.com):
  Uploading log4cplus_2.0.8-1ubuntu1.dsc: done.
  Uploading log4cplus_2.0.8-1ubuntu1.debian.tar.xz: done.
  Uploading log4cplus_2.0.8-1ubuntu1_source.buildinfo: done.
  Uploading log4cplus_2.0.8-1ubuntu1_source.changes: done.
Successfully uploaded packages.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index 3177ffb..ed74f79 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,14 @@
6+log4cplus (2.0.8-1ubuntu1) lunar; urgency=medium
7+
8+ * d/rules: set the default symbol visibility to hidden. (LP: #2008730)
9+ * d/liblog4cplus-2.0.5.symbols*: add symbols files.
10+ * Apply filters to exported symbols.
11+ * d/liblog4cplus-2.0.5.lintian-overrides: remove lintian overrides for
12+ missing symbols file.
13+ * d/tests: use upstream examples as DEP8 tests.
14+
15+ -- Athos Ribeiro <athos.ribeiro@canonical.com> Tue, 07 Feb 2023 08:43:44 -0300
16+
17 log4cplus (2.0.8-1) unstable; urgency=medium
18
19 * New upstream version 2.0.8
20diff --git a/debian/control b/debian/control
21index 2887695..18718b7 100644
22--- a/debian/control
23+++ b/debian/control
24@@ -1,7 +1,8 @@
25 Source: log4cplus
26 Section: libs
27 Priority: optional
28-Maintainer: Andrew Pollock <apollock@debian.org>
29+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
30+XSBC-Original-Maintainer: Andrew Pollock <apollock@debian.org>
31 Uploaders:
32 Tobias Frost <tobi@debian.org>
33 Build-Depends:
34diff --git a/debian/export-map.ld b/debian/export-map.ld
35new file mode 100644
36index 0000000..10f2924
37--- /dev/null
38+++ b/debian/export-map.ld
39@@ -0,0 +1,9 @@
40+{
41+ global: extern "C++" {
42+ # Apply symbols export regex as performed with libtool
43+ log4cplus*;
44+ *for?log4cplus*;
45+ *to?log4cplus*;
46+ };
47+ local: *;
48+};
49diff --git a/debian/liblog4cplus-2.0.5.lintian-overrides b/debian/liblog4cplus-2.0.5.lintian-overrides
50index fc9039b..f51da92 100644
51--- a/debian/liblog4cplus-2.0.5.lintian-overrides
52+++ b/debian/liblog4cplus-2.0.5.lintian-overrides
53@@ -1,4 +1,2 @@
54 # Upstream does not maintain an intended SO Name, so using package version as substitute.
55 liblog4cplus-2.0.5: package-name-doesnt-match-sonames liblog4cplus-2.0-3
56-# Not doing symbols files for C++ libraries.
57-liblog4cplus-2.0.5: no-symbols-control-file usr/lib/x86_64-linux-gnu/liblog4cplus-2.0.so.3.4.*
58diff --git a/debian/liblog4cplus-2.0.5.symbols b/debian/liblog4cplus-2.0.5.symbols
59new file mode 100644
60index 0000000..5f57784
61--- /dev/null
62+++ b/debian/liblog4cplus-2.0.5.symbols
63@@ -0,0 +1,807 @@
64+liblog4cplus-2.0.so.3 liblog4cplus-2.0.5 #MINVER#
65+* Build-Depends-Package: liblog4cplus-dev
66+ (c++)"log4cplus::Appender::addFilter(log4cplus::helpers::SharedObjectPtr<log4cplus::spi::Filter>)@Base" 2.0.8
67+ (c++)"log4cplus::Appender::addFilter(std::function<log4cplus::spi::FilterResult (log4cplus::spi::InternalLoggingEvent const&)>)@Base" 2.0.8
68+ (c++)"log4cplus::Appender::~Appender()@Base" 2.0.8
69+ (c++)"log4cplus::Appender::Appender()@Base" 2.0.8
70+ (c++)"log4cplus::Appender::Appender(log4cplus::helpers::Properties const&)@Base" 2.0.8
71+ (c++)"log4cplus::Appender::asyncDoAppend(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
72+ (c++)"log4cplus::Appender::destructorImpl()@Base" 2.0.8
73+ (c++)"log4cplus::Appender::doAppend(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
74+ (c++)"log4cplus::Appender::formatEvent[abi:cxx11](log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
75+ (c++)"log4cplus::Appender::getErrorHandler()@Base" 2.0.8
76+ (c++)"log4cplus::Appender::getFilter() const@Base" 2.0.8
77+ (c++)"log4cplus::Appender::getLayout()@Base" 2.0.8
78+ (c++)"log4cplus::Appender::getName[abi:cxx11]()@Base" 2.0.8
79+ (c++)"log4cplus::Appender::isClosed() const@Base" 2.0.8
80+ (c++)"log4cplus::Appender::setErrorHandler(std::unique_ptr<log4cplus::ErrorHandler, std::default_delete<log4cplus::ErrorHandler> >)@Base" 2.0.8
81+ (c++)"log4cplus::Appender::setFilter(log4cplus::helpers::SharedObjectPtr<log4cplus::spi::Filter>)@Base" 2.0.8
82+ (c++)"log4cplus::Appender::setLayout(std::unique_ptr<log4cplus::Layout, std::default_delete<log4cplus::Layout> >)@Base" 2.0.8
83+ (c++)"log4cplus::Appender::setName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
84+ (c++)"log4cplus::Appender::subtract_in_flight()@Base" 2.0.8
85+ (c++)"log4cplus::Appender::syncDoAppend(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
86+ (c++)"log4cplus::Appender::waitToFinishAsyncLogging()@Base" 2.0.8
87+ (c++)"log4cplus::AsyncAppender::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
88+ (c++)"log4cplus::AsyncAppender::~AsyncAppender()@Base" 2.0.8
89+ (c++)"log4cplus::AsyncAppender::AsyncAppender(log4cplus::helpers::Properties const&)@Base" 2.0.8
90+ (c++)"log4cplus::AsyncAppender::AsyncAppender(log4cplus::helpers::SharedObjectPtr<log4cplus::Appender> const&, unsigned int)@Base" 2.0.8
91+ (c++)"log4cplus::AsyncAppender::close()@Base" 2.0.8
92+ (c++)"log4cplus::AsyncAppender::init_queue_thread(unsigned int)@Base" 2.0.8
93+ (c++)"log4cplus::BasicConfigurator::~BasicConfigurator()@Base" 2.0.8
94+ (c++)"log4cplus::BasicConfigurator::BasicConfigurator(log4cplus::Hierarchy&, bool)@Base" 2.0.8
95+ (c++)"log4cplus::BasicConfigurator::doConfigure(log4cplus::Hierarchy&, bool)@Base" 2.0.8
96+ (c++)"log4cplus::CallbackAppender::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
97+ (c++)"log4cplus::CallbackAppender::~CallbackAppender()@Base" 2.0.8
98+ (c++)"log4cplus::CallbackAppender::CallbackAppender()@Base" 2.0.8
99+ (c++)"log4cplus::CallbackAppender::CallbackAppender(log4cplus::helpers::Properties const&)@Base" 2.0.8
100+ (c++)"log4cplus::CallbackAppender::CallbackAppender(void (*)(void*, char const*, char const*, int, char const*, char const*, unsigned long long, unsigned long, char const*, char const*, int), void*)@Base" 2.0.8
101+ (c++)"log4cplus::CallbackAppender::close()@Base" 2.0.8
102+ (c++)"log4cplus::ConfigureAndWatchThread::~ConfigureAndWatchThread()@Base" 2.0.8
103+ (c++)"log4cplus::ConfigureAndWatchThread::ConfigureAndWatchThread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)@Base" 2.0.8
104+ (c++)"log4cplus::ConsoleAppender::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
105+ (c++)"log4cplus::ConsoleAppender::close()@Base" 2.0.8
106+ (c++)"log4cplus::ConsoleAppender::~ConsoleAppender()@Base" 2.0.8
107+ (c++)"log4cplus::ConsoleAppender::ConsoleAppender(bool, bool)@Base" 2.0.8
108+ (c++)"log4cplus::ConsoleAppender::ConsoleAppender(log4cplus::helpers::Properties const&)@Base" 2.0.8
109+ (c++)"log4cplus::ConsoleAppender::getOutputMutex()@Base" 2.0.8
110+ (c++)"log4cplus::DailyRollingFileAppender::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
111+ (c++)"log4cplus::DailyRollingFileAppender::close()@Base" 2.0.8
112+ (c++)"log4cplus::DailyRollingFileAppender::~DailyRollingFileAppender()@Base" 2.0.8
113+ (c++)"log4cplus::DailyRollingFileAppender::DailyRollingFileAppender(log4cplus::helpers::Properties const&)@Base" 2.0.8
114+ (c++)"log4cplus::DailyRollingFileAppender::DailyRollingFileAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::DailyRollingFileSchedule, bool, int, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
115+ (c++)"log4cplus::DailyRollingFileAppender::rollover(bool)@Base" 2.0.8
116+ (c++)"log4cplus::DefaultLoggerFactory::makeNewLoggerImplInstance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::Hierarchy&)@Base" 2.0.8
117+ (c++)"log4cplus::DefaultLoggerFactory::makeNewLoggerInstance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::Hierarchy&)@Base" 2.0.8
118+ (c++)"log4cplus::deinitialize()@Base" 2.0.8
119+ (c++)"log4cplus::detail::clear_tostringstream(std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&)@Base" 2.0.8
120+ (c++)"log4cplus::detail::get_macro_body_oss[abi:cxx11]()@Base" 2.0.8
121+ (c++)"log4cplus::detail::get_macro_body_snprintf_buf()@Base" 2.0.8
122+ (c++)"log4cplus::detail::macro_forced_log(log4cplus::Logger const&, int, char const*, char const*, int, char const*)@Base" 2.0.8
123+ (c++)"log4cplus::detail::macro_forced_log(log4cplus::Logger const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*)@Base" 2.0.8
124+ (c++)"log4cplus::DiagnosticContext::DiagnosticContext(char const*)@Base" 2.0.8
125+ (c++)"log4cplus::DiagnosticContext::DiagnosticContext(char const*, log4cplus::DiagnosticContext const*)@Base" 2.0.8
126+ (c++)"log4cplus::DiagnosticContext::DiagnosticContext(log4cplus::DiagnosticContext&&)@Base" 2.0.8
127+ (c++)"log4cplus::DiagnosticContext::DiagnosticContext(log4cplus::DiagnosticContext const&)@Base" 2.0.8
128+ (c++)"log4cplus::DiagnosticContext::DiagnosticContext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
129+ (c++)"log4cplus::DiagnosticContext::DiagnosticContext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::DiagnosticContext const*)@Base" 2.0.8
130+ (c++)"log4cplus::DiagnosticContext::operator=(log4cplus::DiagnosticContext&&)@Base" 2.0.8
131+ (c++)"log4cplus::DiagnosticContext::operator=(log4cplus::DiagnosticContext const&)@Base" 2.0.8
132+ (c++)"log4cplus::DiagnosticContext::swap(log4cplus::DiagnosticContext&)@Base" 2.0.8
133+ (c++)"log4cplus::ErrorHandler::~ErrorHandler()@Base" 2.0.8
134+ (c++)"log4cplus::ErrorHandler::ErrorHandler()@Base" 2.0.8
135+ (c++)"log4cplus::FileAppenderBase::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
136+ (c++)"log4cplus::FileAppenderBase::close()@Base" 2.0.8
137+ (c++)"log4cplus::FileAppenderBase::FileAppenderBase(log4cplus::helpers::Properties const&, std::_Ios_Openmode)@Base" 2.0.8
138+ (c++)"log4cplus::FileAppenderBase::FileAppenderBase(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode, bool, bool)@Base" 2.0.8
139+ (c++)"log4cplus::FileAppenderBase::getloc() const@Base" 2.0.8
140+ (c++)"log4cplus::FileAppenderBase::imbue(std::locale const&)@Base" 2.0.8
141+ (c++)"log4cplus::FileAppenderBase::init()@Base" 2.0.8
142+ (c++)"log4cplus::FileAppenderBase::open(std::_Ios_Openmode)@Base" 2.0.8
143+ (c++)"log4cplus::FileAppenderBase::reopen()@Base" 2.0.8
144+ (c++)"log4cplus::FileAppender::~FileAppender()@Base" 2.0.8
145+ (c++)"log4cplus::FileAppender::FileAppender(log4cplus::helpers::Properties const&, std::_Ios_Openmode)@Base" 2.0.8
146+ (c++)"log4cplus::FileAppender::FileAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode, bool, bool)@Base" 2.0.8
147+ (c++)"log4cplus::FileAppender::init()@Base" 2.0.8
148+ (c++)"log4cplus::getDefaultHierarchy()@Base" 2.0.8
149+ (c++)"log4cplus::getLogLevelManager()@Base" 2.0.8
150+ (c++)"log4cplus::getMDC()@Base" 2.0.8
151+ (c++)"log4cplus::getNDC()@Base" 2.0.8
152+ (c++)"log4cplus::getTTCCLayoutTimeBase()@Base" 2.0.8
153+ (c++)"log4cplus::helpers::AbstractSocket::~AbstractSocket()@Base" 2.0.8
154+ (c++)"log4cplus::helpers::AbstractSocket::AbstractSocket()@Base" 2.0.8
155+ (c++)"log4cplus::helpers::AbstractSocket::AbstractSocket(log4cplus::helpers::AbstractSocket&&)@Base" 2.0.8
156+ (c++)"log4cplus::helpers::AbstractSocket::close()@Base" 2.0.8
157+ (c++)"log4cplus::helpers::AbstractSocket::isOpen() const@Base" 2.0.8
158+ (c++)"log4cplus::helpers::AbstractSocket::operator=(log4cplus::helpers::AbstractSocket&&)@Base" 2.0.8
159+ (c++)"log4cplus::helpers::AbstractSocket::shutdown()@Base" 2.0.8
160+ (c++)"log4cplus::helpers::AbstractSocket::swap(log4cplus::helpers::AbstractSocket&)@Base" 2.0.8
161+ (c++)"log4cplus::helpers::AppenderAttachableImpl::addAppender(log4cplus::helpers::SharedObjectPtr<log4cplus::Appender>)@Base" 2.0.8
162+ (c++)"log4cplus::helpers::AppenderAttachableImpl::~AppenderAttachableImpl()@Base" 2.0.8
163+ (c++)"log4cplus::helpers::AppenderAttachableImpl::AppenderAttachableImpl()@Base" 2.0.8
164+ (c++)"log4cplus::helpers::AppenderAttachableImpl::appendLoopOnAppenders(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
165+ (c++)"log4cplus::helpers::AppenderAttachableImpl::getAllAppenders()@Base" 2.0.8
166+ (c++)"log4cplus::helpers::AppenderAttachableImpl::getAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
167+ (c++)"log4cplus::helpers::AppenderAttachableImpl::removeAllAppenders()@Base" 2.0.8
168+ (c++)"log4cplus::helpers::AppenderAttachableImpl::removeAppender(log4cplus::helpers::SharedObjectPtr<log4cplus::Appender>)@Base" 2.0.8
169+ (c++)"log4cplus::helpers::AppenderAttachableImpl::removeAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
170+ (c++)"log4cplus::helpers::ConnectorThread::~ConnectorThread()@Base" 2.0.8
171+ (c++)"log4cplus::helpers::ConnectorThread::ConnectorThread(log4cplus::helpers::IConnectorThreadClient&)@Base" 2.0.8
172+ (c++)"log4cplus::helpers::ConnectorThread::run()@Base" 2.0.8
173+ (c++)"log4cplus::helpers::ConnectorThread::terminate()@Base" 2.0.8
174+ (c++)"log4cplus::helpers::ConnectorThread::trigger()@Base" 2.0.8
175+ (c++)"log4cplus::helpers::connectSocket(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short, bool, bool, log4cplus::helpers::SocketState&)@Base" 2.0.8
176+ (c++)"log4cplus::helpers::convertToBuffer(log4cplus::helpers::SocketBuffer&, log4cplus::spi::InternalLoggingEvent const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
177+ (c++)"log4cplus::helpers::from_struct_tm(tm*)@Base" 2.0.8
178+ (c++)"log4cplus::helpers::getFileInfo(log4cplus::helpers::FileInfo*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
179+ (c++)"log4cplus::helpers::getHostname[abi:cxx11](bool)@Base" 2.0.8
180+ (c++)"log4cplus::helpers::getLogLog()@Base" 2.0.8
181+ (c++)"log4cplus::helpers::IConnectorThreadClient::~IConnectorThreadClient()@Base" 2.0.8
182+ (c++)"log4cplus::helpers::INVALID_SOCKET_VALUE@Base" 2.0.8
183+ (c++)"log4cplus::helpers::LockFile::close() const@Base" 2.0.8
184+ (c++)"log4cplus::helpers::LockFile::lock() const@Base" 2.0.8
185+ (c++)"log4cplus::helpers::LockFile::~LockFile()@Base" 2.0.8
186+ (c++)"log4cplus::helpers::LockFile::LockFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@Base" 2.0.8
187+ (c++)"log4cplus::helpers::LockFile::open(int) const@Base" 2.0.8
188+ (c++)"log4cplus::helpers::LockFile::unlock() const@Base" 2.0.8
189+ (c++)"log4cplus::helpers::LogLog::debug(char const*) const@Base" 2.0.8
190+ (c++)"log4cplus::helpers::LogLog::debug(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
191+ (c++)"log4cplus::helpers::LogLog::error(char const*, bool) const@Base" 2.0.8
192+ (c++)"log4cplus::helpers::LogLog::error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const@Base" 2.0.8
193+ (c++)"log4cplus::helpers::LogLog::getLogLog()@Base" 2.0.8
194+ (c++)"log4cplus::helpers::LogLog::~LogLog()@Base" 2.0.8
195+ (c++)"log4cplus::helpers::LogLog::LogLog()@Base" 2.0.8
196+ (c++)"log4cplus::helpers::LogLog::setInternalDebugging(bool)@Base" 2.0.8
197+ (c++)"log4cplus::helpers::LogLog::setQuietMode(bool)@Base" 2.0.8
198+ (c++)"log4cplus::helpers::LogLog::warn(char const*) const@Base" 2.0.8
199+ (c++)"log4cplus::helpers::LogLog::warn(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
200+ (c++)"log4cplus::helpers::openSocket(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short, bool, bool, log4cplus::helpers::SocketState&)@Base" 2.0.8
201+ (c++)"log4cplus::helpers::openSocket(unsigned short, bool, bool, log4cplus::helpers::SocketState&)@Base" 2.0.8
202+ (c++)"log4cplus::helpers::Properties::exists(char const*) const@Base" 2.0.8
203+ (c++)"log4cplus::helpers::Properties::exists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
204+ (c++)"log4cplus::helpers::Properties::getBool(bool&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
205+ (c++)"log4cplus::helpers::Properties::getInt(int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
206+ (c++)"log4cplus::helpers::Properties::getLong(long&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
207+ (c++)"log4cplus::helpers::Properties::getProperty[abi:cxx11](char const*) const@Base" 2.0.8
208+ (c++)"log4cplus::helpers::Properties::getProperty(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
209+ (c++)"log4cplus::helpers::Properties::getProperty(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
210+ (c++)"log4cplus::helpers::Properties::getPropertySubset(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
211+ (c++)"log4cplus::helpers::Properties::getString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
212+ (c++)"log4cplus::helpers::Properties::getUInt(unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
213+ (c++)"log4cplus::helpers::Properties::getULong(unsigned long&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
214+ (c++)"log4cplus::helpers::Properties::init(std::basic_istream<char, std::char_traits<char> >&)@Base" 2.0.8
215+ (c++)"log4cplus::helpers::Properties::~Properties()@Base" 2.0.8
216+ (c++)"log4cplus::helpers::Properties::Properties()@Base" 2.0.8
217+ (c++)"log4cplus::helpers::Properties::PROPERTIES_COMMENT_CHAR@Base" 2.0.8
218+ (c++)"log4cplus::helpers::Properties::Properties(std::basic_istream<char, std::char_traits<char> >&)@Base" 2.0.8
219+ (c++)"log4cplus::helpers::Properties::Properties(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)@Base" 2.0.8
220+ (c++)"log4cplus::helpers::Properties::propertyNames[abi:cxx11]() const@Base" 2.0.8
221+ (c++)"log4cplus::helpers::Properties::removeProperty(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
222+ (c++)"log4cplus::helpers::Properties::setProperty(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
223+ (c++)"log4cplus::helpers::readFromBuffer(log4cplus::helpers::SocketBuffer&)@Base" 2.0.8
224+ (c++)"log4cplus::helpers::ServerSocket::accept()@Base" 2.0.8
225+ (c++)"log4cplus::helpers::ServerSocket::interruptAccept()@Base" 2.0.8
226+ (c++)"log4cplus::helpers::ServerSocket::operator=(log4cplus::helpers::ServerSocket&&)@Base" 2.0.8
227+ (c++)"log4cplus::helpers::ServerSocket::~ServerSocket()@Base" 2.0.8
228+ (c++)"log4cplus::helpers::ServerSocket::ServerSocket(log4cplus::helpers::ServerSocket&&)@Base" 2.0.8
229+ (c++)"log4cplus::helpers::ServerSocket::ServerSocket(unsigned short, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
230+ (c++)"log4cplus::helpers::ServerSocket::swap(log4cplus::helpers::ServerSocket&)@Base" 2.0.8
231+ (c++)"log4cplus::helpers::SharedObject::addReference() const@Base" 2.0.8
232+ (c++)"log4cplus::helpers::SharedObject::removeReference() const@Base" 2.0.8
233+ (c++)"log4cplus::helpers::SharedObject::~SharedObject()@Base" 2.0.8
234+ (c++)"log4cplus::helpers::snprintf_buf::print(char const*, ...)@Base" 2.0.8
235+ (c++)"log4cplus::helpers::snprintf_buf::snprintf_buf()@Base" 2.0.8
236+ (c++)"log4cplus::helpers::SocketBuffer::appendBuffer(log4cplus::helpers::SocketBuffer const&)@Base" 2.0.8
237+ (c++)"log4cplus::helpers::SocketBuffer::appendByte(unsigned char)@Base" 2.0.8
238+ (c++)"log4cplus::helpers::SocketBuffer::appendInt(unsigned int)@Base" 2.0.8
239+ (c++)"log4cplus::helpers::SocketBuffer::appendShort(unsigned short)@Base" 2.0.8
240+ (c++)"log4cplus::helpers::SocketBuffer::appendString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
241+ (c++)"log4cplus::helpers::SocketBuffer::readByte()@Base" 2.0.8
242+ (c++)"log4cplus::helpers::SocketBuffer::readInt()@Base" 2.0.8
243+ (c++)"log4cplus::helpers::SocketBuffer::readShort()@Base" 2.0.8
244+ (c++)"log4cplus::helpers::SocketBuffer::readString[abi:cxx11](unsigned char)@Base" 2.0.8
245+ (c++)"log4cplus::helpers::SocketBuffer::~SocketBuffer()@Base" 2.0.8
246+ (c++)"log4cplus::helpers::Socket::operator=(log4cplus::helpers::Socket&&)@Base" 2.0.8
247+ (c++)"log4cplus::helpers::Socket::read(log4cplus::helpers::SocketBuffer&)@Base" 2.0.8
248+ (c++)"log4cplus::helpers::Socket::~Socket()@Base" 2.0.8
249+ (c++)"log4cplus::helpers::Socket::Socket()@Base" 2.0.8
250+ (c++)"log4cplus::helpers::Socket::Socket(log4cplus::helpers::Socket&&)@Base" 2.0.8
251+ (c++)"log4cplus::helpers::Socket::Socket(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short, bool, bool)@Base" 2.0.8
252+ (c++)"log4cplus::helpers::Socket::write(log4cplus::helpers::SocketBuffer const&)@Base" 2.0.8
253+ (c++)"log4cplus::helpers::Socket::write(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
254+ (c++)"log4cplus::helpers::toLower(char)@Base" 2.0.8
255+ (c++)"log4cplus::helpers::toLower(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
256+ (c++)"log4cplus::helpers::tostring[abi:cxx11](wchar_t const*)@Base" 2.0.8
257+ (c++)"log4cplus::helpers::tostring(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)@Base" 2.0.8
258+ (c++)"log4cplus::helpers::toUpper(char)@Base" 2.0.8
259+ (c++)"log4cplus::helpers::toUpper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
260+ (c++)"log4cplus::helpers::towstring[abi:cxx11](char const*)@Base" 2.0.8
261+ (c++)"log4cplus::helpers::towstring(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
262+ (c++)"log4cplus::Hierarchy::clear()@Base" 2.0.8
263+ (c++)"log4cplus::Hierarchy::disableAll()@Base" 2.0.8
264+ (c++)"log4cplus::Hierarchy::disableDebug()@Base" 2.0.8
265+ (c++)"log4cplus::Hierarchy::disableInfo()@Base" 2.0.8
266+ (c++)"log4cplus::Hierarchy::disable(int)@Base" 2.0.8
267+ (c++)"log4cplus::Hierarchy::DISABLE_OFF@Base" 2.0.8
268+ (c++)"log4cplus::Hierarchy::DISABLE_OVERRIDE@Base" 2.0.8
269+ (c++)"log4cplus::Hierarchy::disable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
270+ (c++)"log4cplus::Hierarchy::enableAll()@Base" 2.0.8
271+ (c++)"log4cplus::Hierarchy::exists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
272+ (c++)"log4cplus::Hierarchy::getCurrentLoggers()@Base" 2.0.8
273+ (c++)"log4cplus::Hierarchy::getInstance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
274+ (c++)"log4cplus::Hierarchy::getInstance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::spi::LoggerFactory&)@Base" 2.0.8
275+ (c++)"log4cplus::Hierarchy::getLoggerFactory()@Base" 2.0.8
276+ (c++)"log4cplus::Hierarchy::getRoot() const@Base" 2.0.8
277+ (c++)"log4cplus::Hierarchy::~Hierarchy()@Base" 2.0.8
278+ (c++)"log4cplus::Hierarchy::Hierarchy()@Base" 2.0.8
279+ (c++)"log4cplus::Hierarchy::isDisabled(int)@Base" 2.0.8
280+ (c++)"log4cplus::HierarchyLocker::addAppender(log4cplus::Logger&, log4cplus::helpers::SharedObjectPtr<log4cplus::Appender>&)@Base" 2.0.8
281+ (c++)"log4cplus::HierarchyLocker::getInstance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
282+ (c++)"log4cplus::HierarchyLocker::getInstance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::spi::LoggerFactory&)@Base" 2.0.8
283+ (c++)"log4cplus::HierarchyLocker::~HierarchyLocker()@Base" 2.0.8
284+ (c++)"log4cplus::HierarchyLocker::HierarchyLocker(log4cplus::Hierarchy&)@Base" 2.0.8
285+ (c++)"log4cplus::HierarchyLocker::resetConfiguration()@Base" 2.0.8
286+ (c++)"log4cplus::Hierarchy::resetConfiguration()@Base" 2.0.8
287+ (c++)"log4cplus::Hierarchy::setLoggerFactory(std::unique_ptr<log4cplus::spi::LoggerFactory, std::default_delete<log4cplus::spi::LoggerFactory> >)@Base" 2.0.8
288+ (c++)"log4cplus::Hierarchy::shutdown()@Base" 2.0.8
289+ (c++)"log4cplus::initialize()@Base" 2.0.8
290+ (c++)"log4cplus::Initializer::~Initializer()@Base" 2.0.8
291+ (c++)"log4cplus::Initializer::Initializer()@Base" 2.0.8
292+ (c++)"log4cplus::Layout::~Layout()@Base" 2.0.8
293+ (c++)"log4cplus::Layout::Layout()@Base" 2.0.8
294+ (c++)"log4cplus::Layout::Layout(log4cplus::helpers::Properties const&)@Base" 2.0.8
295+ (c++)"log4cplus::Log4jUdpAppender::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
296+ (c++)"log4cplus::Log4jUdpAppender::close()@Base" 2.0.8
297+ (c++)"log4cplus::Log4jUdpAppender::~Log4jUdpAppender()@Base" 2.0.8
298+ (c++)"log4cplus::Log4jUdpAppender::Log4jUdpAppender(log4cplus::helpers::Properties const&)@Base" 2.0.8
299+ (c++)"log4cplus::Log4jUdpAppender::Log4jUdpAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool)@Base" 2.0.8
300+ (c++)"log4cplus::Log4jUdpAppender::openSocket()@Base" 2.0.8
301+ (c++)"log4cplus::Logger::addAppender(log4cplus::helpers::SharedObjectPtr<log4cplus::Appender>)@Base" 2.0.8
302+ (c++)"log4cplus::Logger::assertion(bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
303+ (c++)"log4cplus::Logger::callAppenders(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
304+ (c++)"log4cplus::Logger::closeNestedAppenders() const@Base" 2.0.8
305+ (c++)"log4cplus::Logger::exists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
306+ (c++)"log4cplus::Logger::forcedLog(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*) const@Base" 2.0.8
307+ (c++)"log4cplus::Logger::forcedLog(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
308+ (c++)"log4cplus::Logger::getAdditivity() const@Base" 2.0.8
309+ (c++)"log4cplus::Logger::getAllAppenders()@Base" 2.0.8
310+ (c++)"log4cplus::Logger::getAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
311+ (c++)"log4cplus::Logger::getChainedLogLevel() const@Base" 2.0.8
312+ (c++)"log4cplus::Logger::getCurrentLoggers()@Base" 2.0.8
313+ (c++)"log4cplus::Logger::getDefaultHierarchy()@Base" 2.0.8
314+ (c++)"log4cplus::Logger::getHierarchy() const@Base" 2.0.8
315+ (c++)"log4cplus::Logger::getInstance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
316+ (c++)"log4cplus::Logger::getInstance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::spi::LoggerFactory&)@Base" 2.0.8
317+ (c++)"log4cplus::Logger::getLogLevel() const@Base" 2.0.8
318+ (c++)"log4cplus::Logger::getName[abi:cxx11]() const@Base" 2.0.8
319+ (c++)"log4cplus::Logger::getParent() const@Base" 2.0.8
320+ (c++)"log4cplus::Logger::getRoot()@Base" 2.0.8
321+ (c++)"log4cplus::Logger::isEnabledFor(int) const@Base" 2.0.8
322+ (c++)"log4cplus::Logger::~Logger()@Base" 2.0.8
323+ (c++)"log4cplus::Logger::Logger()@Base" 2.0.8
324+ (c++)"log4cplus::Logger::Logger(log4cplus::Logger&&)@Base" 2.0.8
325+ (c++)"log4cplus::Logger::Logger(log4cplus::Logger const&)@Base" 2.0.8
326+ (c++)"log4cplus::Logger::Logger(log4cplus::spi::LoggerImpl*)@Base" 2.0.8
327+ (c++)"log4cplus::Logger::log(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*) const@Base" 2.0.8
328+ (c++)"log4cplus::Logger::log(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
329+ (c++)"log4cplus::Logger::operator=(log4cplus::Logger&&)@Base" 2.0.8
330+ (c++)"log4cplus::Logger::operator=(log4cplus::Logger const&)@Base" 2.0.8
331+ (c++)"log4cplus::Logger::removeAllAppenders()@Base" 2.0.8
332+ (c++)"log4cplus::Logger::removeAppender(log4cplus::helpers::SharedObjectPtr<log4cplus::Appender>)@Base" 2.0.8
333+ (c++)"log4cplus::Logger::removeAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
334+ (c++)"log4cplus::Logger::setAdditivity(bool)@Base" 2.0.8
335+ (c++)"log4cplus::Logger::setLogLevel(int)@Base" 2.0.8
336+ (c++)"log4cplus::Logger::shutdown()@Base" 2.0.8
337+ (c++)"log4cplus::Logger::swap(log4cplus::Logger&)@Base" 2.0.8
338+ (c++)"log4cplus::LogLevelManager::fromString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
339+ (c++)"log4cplus::LogLevelManager::~LogLevelManager()@Base" 2.0.8
340+ (c++)"log4cplus::LogLevelManager::LogLevelManager()@Base" 2.0.8
341+ (c++)"log4cplus::LogLevelManager::LogLevelToStringMethodRec::LogLevelToStringMethodRec()@Base" 2.0.8
342+ (c++)"log4cplus::LogLevelManager::LogLevelToStringMethodRec::LogLevelToStringMethodRec(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (*)(int))@Base" 2.0.8
343+ (c++)"log4cplus::LogLevelManager::pushFromStringMethod(int (*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&))@Base" 2.0.8
344+ (c++)"log4cplus::LogLevelManager::pushToStringMethod(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (*)(int))@Base" 2.0.8
345+ (c++)"log4cplus::LogLevelManager::toString[abi:cxx11](int) const@Base" 2.0.8
346+ (c++)"log4cplus::MDC::clear()@Base" 2.0.8
347+ (c++)"log4cplus::MDC::getContext[abi:cxx11]() const@Base" 2.0.8
348+ (c++)"log4cplus::MDC::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
349+ (c++)"log4cplus::MDC::~MDC()@Base" 2.0.8
350+ (c++)"log4cplus::MDC::MDC()@Base" 2.0.8
351+ (c++)"log4cplus::MDC::put(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
352+ (c++)"log4cplus::MDC::remove(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
353+ (c++)"log4cplus::NDC::clear()@Base" 2.0.8
354+ (c++)"log4cplus::NDC::cloneStack() const@Base" 2.0.8
355+ (c++)"log4cplus::NDCContextCreator::~NDCContextCreator()@Base" 2.0.8
356+ (c++)"log4cplus::NDCContextCreator::NDCContextCreator(char const*)@Base" 2.0.8
357+ (c++)"log4cplus::NDCContextCreator::NDCContextCreator(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
358+ (c++)"log4cplus::NDC::get[abi:cxx11]() const@Base" 2.0.8
359+ (c++)"log4cplus::NDC::getDepth() const@Base" 2.0.8
360+ (c++)"log4cplus::NDC::inherit(std::deque<log4cplus::DiagnosticContext, std::allocator<log4cplus::DiagnosticContext> > const&)@Base" 2.0.8
361+ (c++)"log4cplus::NDC::~NDC()@Base" 2.0.8
362+ (c++)"log4cplus::NDC::NDC()@Base" 2.0.8
363+ (c++)"log4cplus::NDC::peek[abi:cxx11]() const@Base" 2.0.8
364+ (c++)"log4cplus::NDC::pop[abi:cxx11]()@Base" 2.0.8
365+ (c++)"log4cplus::NDC::pop_void()@Base" 2.0.8
366+ (c++)"log4cplus::NDC::push(char const*)@Base" 2.0.8
367+ (c++)"log4cplus::NDC::push(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
368+ (c++)"log4cplus::NDC::remove()@Base" 2.0.8
369+ (c++)"log4cplus::NullAppender::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
370+ (c++)"log4cplus::NullAppender::close()@Base" 2.0.8
371+ (c++)"log4cplus::NullAppender::~NullAppender()@Base" 2.0.8
372+ (c++)"log4cplus::NullAppender::NullAppender()@Base" 2.0.8
373+ (c++)"log4cplus::NullAppender::NullAppender(log4cplus::helpers::Properties const&)@Base" 2.0.8
374+ (c++)"log4cplus::OnlyOnceErrorHandler::error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
375+ (c++)"log4cplus::OnlyOnceErrorHandler::~OnlyOnceErrorHandler()@Base" 2.0.8
376+ (c++)"log4cplus::OnlyOnceErrorHandler::OnlyOnceErrorHandler()@Base" 2.0.8
377+ (c++)"log4cplus::OnlyOnceErrorHandler::reset()@Base" 2.0.8
378+ (c++)"log4cplus::PatternLayout::formatAndAppend(std::basic_ostream<char, std::char_traits<char> >&, log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
379+ (c++)"log4cplus::PatternLayout::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)@Base" 2.0.8
380+ (c++)"log4cplus::PatternLayout::~PatternLayout()@Base" 2.0.8
381+ (c++)"log4cplus::PatternLayout::PatternLayout(log4cplus::helpers::Properties const&)@Base" 2.0.8
382+ (c++)"log4cplus::PatternLayout::PatternLayout(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
383+ (c++)"log4cplus::PropertyConfigurator::addAppender(log4cplus::Logger&, log4cplus::helpers::SharedObjectPtr<log4cplus::Appender>&)@Base" 2.0.8
384+ (c++)"log4cplus::PropertyConfigurator::configureAdditivity()@Base" 2.0.8
385+ (c++)"log4cplus::PropertyConfigurator::configureAppenders()@Base" 2.0.8
386+ (c++)"log4cplus::PropertyConfigurator::configure()@Base" 2.0.8
387+ (c++)"log4cplus::PropertyConfigurator::configureLogger(log4cplus::Logger, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
388+ (c++)"log4cplus::PropertyConfigurator::configureLoggers()@Base" 2.0.8
389+ (c++)"log4cplus::PropertyConfigurator::doConfigure(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::Hierarchy&, unsigned int)@Base" 2.0.8
390+ (c++)"log4cplus::PropertyConfigurator::getLogger(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
391+ (c++)"log4cplus::PropertyConfigurator::getProperties() const@Base" 2.0.8
392+ (c++)"log4cplus::PropertyConfigurator::getPropertyFilename[abi:cxx11]() const@Base" 2.0.8
393+ (c++)"log4cplus::PropertyConfigurator::init()@Base" 2.0.8
394+ (c++)"log4cplus::PropertyConfigurator::~PropertyConfigurator()@Base" 2.0.8
395+ (c++)"log4cplus::PropertyConfigurator::PropertyConfigurator(log4cplus::helpers::Properties const&, log4cplus::Hierarchy&, unsigned int)@Base" 2.0.8
396+ (c++)"log4cplus::PropertyConfigurator::PropertyConfigurator(std::basic_istream<char, std::char_traits<char> >&, log4cplus::Hierarchy&, unsigned int)@Base" 2.0.8
397+ (c++)"log4cplus::PropertyConfigurator::PropertyConfigurator(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::Hierarchy&, unsigned int)@Base" 2.0.8
398+ (c++)"log4cplus::PropertyConfigurator::reconfigure()@Base" 2.0.8
399+ (c++)"log4cplus::PropertyConfigurator::replaceEnvironVariables()@Base" 2.0.8
400+ (c++)"log4cplus::RollingFileAppender::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
401+ (c++)"log4cplus::RollingFileAppender::~RollingFileAppender()@Base" 2.0.8
402+ (c++)"log4cplus::RollingFileAppender::RollingFileAppender(log4cplus::helpers::Properties const&)@Base" 2.0.8
403+ (c++)"log4cplus::RollingFileAppender::RollingFileAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long, int, bool, bool)@Base" 2.0.8
404+ (c++)"log4cplus::RollingFileAppender::rollover(bool)@Base" 2.0.8
405+ (c++)"log4cplus::SimpleLayout::formatAndAppend(std::basic_ostream<char, std::char_traits<char> >&, log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
406+ (c++)"log4cplus::SimpleLayout::~SimpleLayout()@Base" 2.0.8
407+ (c++)"log4cplus::SimpleLayout::SimpleLayout()@Base" 2.0.8
408+ (c++)"log4cplus::SimpleLayout::SimpleLayout(log4cplus::helpers::Properties const&)@Base" 2.0.8
409+ (c++)"log4cplus::SocketAppender::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
410+ (c++)"log4cplus::SocketAppender::close()@Base" 2.0.8
411+ (c++)"log4cplus::SocketAppender::ctcConnect()@Base" 2.0.8
412+ (c++)"log4cplus::SocketAppender::ctcGetAccessMutex() const@Base" 2.0.8
413+ (c++)"log4cplus::SocketAppender::ctcGetSocket()@Base" 2.0.8
414+ (c++)"log4cplus::SocketAppender::ctcSetConnected()@Base" 2.0.8
415+ (c++)"log4cplus::SocketAppender::initConnector()@Base" 2.0.8
416+ (c++)"log4cplus::SocketAppender::openSocket()@Base" 2.0.8
417+ (c++)"log4cplus::SocketAppender::~SocketAppender()@Base" 2.0.8
418+ (c++)"log4cplus::SocketAppender::SocketAppender(log4cplus::helpers::Properties const&)@Base" 2.0.8
419+ (c++)"log4cplus::SocketAppender::SocketAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@Base" 2.0.8
420+ (c++)"log4cplus::spi::AppenderAttachable::~AppenderAttachable()@Base" 2.0.8
421+ (c++)"log4cplus::spi::AppenderFactory::~AppenderFactory()@Base" 2.0.8
422+ (c++)"log4cplus::spi::AppenderFactory::AppenderFactory()@Base" 2.0.8
423+ (c++)"log4cplus::spi::BaseFactory::~BaseFactory()@Base" 2.0.8
424+ (c++)"log4cplus::spi::checkFilter(log4cplus::spi::Filter const*, log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
425+ (c++)"log4cplus::spi::DenyAllFilter::decide(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
426+ (c++)"log4cplus::spi::DenyAllFilter::DenyAllFilter()@Base" 2.0.8
427+ (c++)"log4cplus::spi::DenyAllFilter::DenyAllFilter(log4cplus::helpers::Properties const&)@Base" 2.0.8
428+ (c++)"log4cplus::spi::Filter::appendFilter(log4cplus::helpers::SharedObjectPtr<log4cplus::spi::Filter>)@Base" 2.0.8
429+ (c++)"log4cplus::spi::FilterFactory::~FilterFactory()@Base" 2.0.8
430+ (c++)"log4cplus::spi::FilterFactory::FilterFactory()@Base" 2.0.8
431+ (c++)"log4cplus::spi::Filter::~Filter()@Base" 2.0.8
432+ (c++)"log4cplus::spi::Filter::Filter()@Base" 2.0.8
433+ (c++)"log4cplus::spi::FunctionFilter::decide(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
434+ (c++)"log4cplus::spi::FunctionFilter::FunctionFilter(std::function<log4cplus::spi::FilterResult (log4cplus::spi::InternalLoggingEvent const&)>)@Base" 2.0.8
435+ (c++)"log4cplus::spi::getAppenderFactoryRegistry()@Base" 2.0.8
436+ (c++)"log4cplus::spi::getFilterFactoryRegistry()@Base" 2.0.8
437+ (c++)"log4cplus::spi::getLayoutFactoryRegistry()@Base" 2.0.8
438+ (c++)"log4cplus::spi::getLocaleFactoryRegistry()@Base" 2.0.8
439+ (c++)"log4cplus::spi::InternalLoggingEvent::clone() const@Base" 2.0.8
440+ (c++)"log4cplus::spi::InternalLoggingEvent::gatherThreadSpecificData() const@Base" 2.0.8
441+ (c++)"log4cplus::spi::InternalLoggingEvent::getDefaultType()@Base" 2.0.8
442+ (c++)"log4cplus::spi::InternalLoggingEvent::getMDC(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
443+ (c++)"log4cplus::spi::InternalLoggingEvent::getMessage[abi:cxx11]() const@Base" 2.0.8
444+ (c++)"log4cplus::spi::InternalLoggingEvent::getType() const@Base" 2.0.8
445+ (c++)"log4cplus::spi::InternalLoggingEvent::~InternalLoggingEvent()@Base" 2.0.8
446+ (c++)"log4cplus::spi::InternalLoggingEvent::InternalLoggingEvent()@Base" 2.0.8
447+ (c++)"log4cplus::spi::InternalLoggingEvent::InternalLoggingEvent(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
448+ (c++)"log4cplus::spi::InternalLoggingEvent::InternalLoggingEvent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*)@Base" 2.0.8
449+ (c++)"log4cplus::spi::InternalLoggingEvent::operator=(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
450+ (c++)"log4cplus::spi::InternalLoggingEvent::setFunction(char const*)@Base" 2.0.8
451+ (c++)"log4cplus::spi::InternalLoggingEvent::setFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
452+ (c++)"log4cplus::spi::InternalLoggingEvent::setLoggingEvent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*)@Base" 2.0.8
453+ (c++)"log4cplus::spi::InternalLoggingEvent::swap(log4cplus::spi::InternalLoggingEvent&)@Base" 2.0.8
454+ (c++)"log4cplus::spi::LayoutFactory::~LayoutFactory()@Base" 2.0.8
455+ (c++)"log4cplus::spi::LayoutFactory::LayoutFactory()@Base" 2.0.8
456+ (c++)"log4cplus::spi::LocaleFactory::~LocaleFactory()@Base" 2.0.8
457+ (c++)"log4cplus::spi::LocaleFactory::LocaleFactory()@Base" 2.0.8
458+ (c++)"log4cplus::spi::LoggerFactory::~LoggerFactory()@Base" 2.0.8
459+ (c++)"log4cplus::spi::LoggerImpl::callAppenders(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
460+ (c++)"log4cplus::spi::LoggerImpl::closeNestedAppenders()@Base" 2.0.8
461+ (c++)"log4cplus::spi::LoggerImpl::forcedLog(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*)@Base" 2.0.8
462+ (c++)"log4cplus::spi::LoggerImpl::forcedLog(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
463+ (c++)"log4cplus::spi::LoggerImpl::getAdditivity() const@Base" 2.0.8
464+ (c++)"log4cplus::spi::LoggerImpl::getChainedLogLevel() const@Base" 2.0.8
465+ (c++)"log4cplus::spi::LoggerImpl::getHierarchy() const@Base" 2.0.8
466+ (c++)"log4cplus::spi::LoggerImpl::isEnabledFor(int) const@Base" 2.0.8
467+ (c++)"log4cplus::spi::LoggerImpl::~LoggerImpl()@Base" 2.0.8
468+ (c++)"log4cplus::spi::LoggerImpl::LoggerImpl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::Hierarchy&)@Base" 2.0.8
469+ (c++)"log4cplus::spi::LoggerImpl::log(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*)@Base" 2.0.8
470+ (c++)"log4cplus::spi::LoggerImpl::log(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
471+ (c++)"log4cplus::spi::LoggerImpl::setAdditivity(bool)@Base" 2.0.8
472+ (c++)"log4cplus::spi::LogLevelMatchFilter::decide(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
473+ (c++)"log4cplus::spi::LogLevelMatchFilter::LogLevelMatchFilter()@Base" 2.0.8
474+ (c++)"log4cplus::spi::LogLevelMatchFilter::LogLevelMatchFilter(log4cplus::helpers::Properties const&)@Base" 2.0.8
475+ (c++)"log4cplus::spi::LogLevelRangeFilter::decide(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
476+ (c++)"log4cplus::spi::LogLevelRangeFilter::LogLevelRangeFilter()@Base" 2.0.8
477+ (c++)"log4cplus::spi::LogLevelRangeFilter::LogLevelRangeFilter(log4cplus::helpers::Properties const&)@Base" 2.0.8
478+ (c++)"log4cplus::spi::MDCMatchFilter::decide(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
479+ (c++)"log4cplus::spi::MDCMatchFilter::MDCMatchFilter()@Base" 2.0.8
480+ (c++)"log4cplus::spi::MDCMatchFilter::MDCMatchFilter(log4cplus::helpers::Properties const&)@Base" 2.0.8
481+ (c++)"log4cplus::spi::NDCMatchFilter::decide(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
482+ (c++)"log4cplus::spi::NDCMatchFilter::NDCMatchFilter()@Base" 2.0.8
483+ (c++)"log4cplus::spi::NDCMatchFilter::NDCMatchFilter(log4cplus::helpers::Properties const&)@Base" 2.0.8
484+ (c++)"log4cplus::spi::ObjectRegistryBase::clear()@Base" 2.0.8
485+ (c++)"log4cplus::spi::ObjectRegistryBase::_enableLocking(bool)@Base" 2.0.8
486+ (c++)"log4cplus::spi::ObjectRegistryBase::exists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
487+ (c++)"log4cplus::spi::ObjectRegistryBase::getAllNames[abi:cxx11]() const@Base" 2.0.8
488+ (c++)"log4cplus::spi::ObjectRegistryBase::getVal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.8
489+ (c++)"log4cplus::spi::ObjectRegistryBase::~ObjectRegistryBase()@Base" 2.0.8
490+ (c++)"log4cplus::spi::ObjectRegistryBase::ObjectRegistryBase()@Base" 2.0.8
491+ (c++)"log4cplus::spi::ObjectRegistryBase::putVal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void*)@Base" 2.0.8
492+ (c++)"log4cplus::spi::RootLogger::getChainedLogLevel() const@Base" 2.0.8
493+ (c++)"log4cplus::spi::RootLogger::RootLogger(log4cplus::Hierarchy&, int)@Base" 2.0.8
494+ (c++)"log4cplus::spi::RootLogger::setLogLevel(int)@Base" 2.0.8
495+ (c++)"log4cplus::spi::StringMatchFilter::decide(log4cplus::spi::InternalLoggingEvent const&) const@Base" 2.0.8
496+ (c++)"log4cplus::spi::StringMatchFilter::StringMatchFilter()@Base" 2.0.8
497+ (c++)"log4cplus::spi::StringMatchFilter::StringMatchFilter(log4cplus::helpers::Properties const&)@Base" 2.0.8
498+ (c++)"log4cplus::SysLogAppender::appendLocal(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
499+ (c++)"log4cplus::SysLogAppender::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
500+ (c++)"log4cplus::SysLogAppender::appendRemote(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
501+ (c++)"log4cplus::SysLogAppender::close()@Base" 2.0.8
502+ (c++)"log4cplus::SysLogAppender::ctcConnect()@Base" 2.0.8
503+ (c++)"log4cplus::SysLogAppender::ctcGetAccessMutex() const@Base" 2.0.8
504+ (c++)"log4cplus::SysLogAppender::ctcGetSocket()@Base" 2.0.8
505+ (c++)"log4cplus::SysLogAppender::ctcSetConnected()@Base" 2.0.8
506+ (c++)"log4cplus::SysLogAppender::getSysLogLevel(int const&) const@Base" 2.0.8
507+ (c++)"log4cplus::SysLogAppender::initConnector()@Base" 2.0.8
508+ (c++)"log4cplus::SysLogAppender::openSocket()@Base" 2.0.8
509+ (c++)"log4cplus::SysLogAppender::remoteTimeFormat[abi:cxx11]@Base" 2.0.8
510+ (c++)"log4cplus::SysLogAppender::~SysLogAppender()@Base" 2.0.8
511+ (c++)"log4cplus::SysLogAppender::SysLogAppender(log4cplus::helpers::Properties const&)@Base" 2.0.8
512+ (c++)"log4cplus::SysLogAppender::SysLogAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
513+ (c++)"log4cplus::SysLogAppender::SysLogAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, log4cplus::SysLogAppender::RemoteSyslogType, bool)@Base" 2.0.8
514+ (c++)"log4cplus::tcerr@Base" 2.0.8
515+ (c++)"log4cplus::tcout@Base" 2.0.8
516+ (c++)"log4cplus::thread::AbstractThread::~AbstractThread()@Base" 2.0.8
517+ (c++)"log4cplus::thread::AbstractThread::AbstractThread()@Base" 2.0.8
518+ (c++)"log4cplus::thread::AbstractThread::isRunning() const@Base" 2.0.8
519+ (c++)"log4cplus::thread::AbstractThread::join() const@Base" 2.0.8
520+ (c++)"log4cplus::thread::AbstractThread::start()@Base" 2.0.8
521+ (c++)"log4cplus::thread::blockAllSignals()@Base" 2.0.8
522+ (c++)"log4cplus::threadCleanup()@Base" 2.0.8
523+ (c++)"log4cplus::thread::getCurrentThreadName2[abi:cxx11]()@Base" 2.0.8
524+ (c++)"log4cplus::thread::getCurrentThreadName[abi:cxx11]()@Base" 2.0.8
525+ (c++)"log4cplus::thread::impl::syncprims_throw_exception(char const*, char const*, int)@Base" 2.0.8
526+ (c++)"log4cplus::thread::ManualResetEvent::~ManualResetEvent()@Base" 2.0.8
527+ (c++)"log4cplus::thread::ManualResetEvent::ManualResetEvent(bool)@Base" 2.0.8
528+ (c++)"log4cplus::thread::ManualResetEvent::reset() const@Base" 2.0.8
529+ (c++)"log4cplus::thread::ManualResetEvent::signal() const@Base" 2.0.8
530+ (c++)"log4cplus::thread::ManualResetEvent::timed_wait(unsigned long) const@Base" 2.0.8
531+ (c++)"log4cplus::thread::ManualResetEvent::wait() const@Base" 2.0.8
532+ (c++)"log4cplus::thread::Mutex::lock() const@Base" 2.0.8
533+ (c++)"log4cplus::thread::Mutex::~Mutex()@Base" 2.0.8
534+ (c++)"log4cplus::thread::Mutex::Mutex()@Base" 2.0.8
535+ (c++)"log4cplus::thread::Mutex::unlock() const@Base" 2.0.8
536+ (c++)"log4cplus::thread::Queue::get_events(std::deque<log4cplus::spi::InternalLoggingEvent, std::allocator<log4cplus::spi::InternalLoggingEvent> >*)@Base" 2.0.8
537+ (c++)"log4cplus::thread::Queue::put_event(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
538+ (c++)"log4cplus::thread::Queue::~Queue()@Base" 2.0.8
539+ (c++)"log4cplus::thread::Queue::Queue(unsigned int)@Base" 2.0.8
540+ (c++)"log4cplus::thread::Queue::signal_exit(bool)@Base" 2.0.8
541+ (c++)"log4cplus::thread::Semaphore::lock() const@Base" 2.0.8
542+ (c++)"log4cplus::thread::Semaphore::~Semaphore()@Base" 2.0.8
543+ (c++)"log4cplus::thread::Semaphore::Semaphore(unsigned int, unsigned int)@Base" 2.0.8
544+ (c++)"log4cplus::thread::Semaphore::unlock() const@Base" 2.0.8
545+ (c++)"log4cplus::thread::setCurrentThreadName2(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
546+ (c++)"log4cplus::thread::setCurrentThreadName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
547+ (c++)"log4cplus::thread::SharedMutex::rdlock() const@Base" 2.0.8
548+ (c++)"log4cplus::thread::SharedMutex::rdunlock() const@Base" 2.0.8
549+ (c++)"log4cplus::thread::SharedMutex::~SharedMutex()@Base" 2.0.8
550+ (c++)"log4cplus::thread::SharedMutex::SharedMutex()@Base" 2.0.8
551+ (c++)"log4cplus::thread::SharedMutex::wrlock() const@Base" 2.0.8
552+ (c++)"log4cplus::thread::SharedMutex::wrunlock() const@Base" 2.0.8
553+ (c++)"log4cplus::thread::SignalsBlocker::~SignalsBlocker()@Base" 2.0.8
554+ (c++)"log4cplus::thread::SignalsBlocker::SignalsBlocker()@Base" 2.0.8
555+ (c++)"log4cplus::thread::yield()@Base" 2.0.8
556+ (c++)"log4cplus::TimeBasedRollingFileAppender::append(log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
557+ (c++)"log4cplus::TimeBasedRollingFileAppender::calculateNextRolloverTime(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > > const&) const@Base" 2.0.8
558+ (c++)"log4cplus::TimeBasedRollingFileAppender::clean(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > >)@Base" 2.0.8
559+ (c++)"log4cplus::TimeBasedRollingFileAppender::close()@Base" 2.0.8
560+ (c++)"log4cplus::TimeBasedRollingFileAppender::getRolloverPeriodDuration() const@Base" 2.0.8
561+ (c++)"log4cplus::TimeBasedRollingFileAppender::open(std::_Ios_Openmode)@Base" 2.0.8
562+ (c++)"log4cplus::TimeBasedRollingFileAppender::rollover(bool)@Base" 2.0.8
563+ (c++)"log4cplus::TimeBasedRollingFileAppender::~TimeBasedRollingFileAppender()@Base" 2.0.8
564+ (c++)"log4cplus::TimeBasedRollingFileAppender::TimeBasedRollingFileAppender(log4cplus::helpers::Properties const&)@Base" 2.0.8
565+ (c++)"log4cplus::TimeBasedRollingFileAppender::TimeBasedRollingFileAppender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool, bool, bool, bool)@Base" 2.0.8
566+ (c++)"log4cplus::TTCCLayout::formatAndAppend(std::basic_ostream<char, std::char_traits<char> >&, log4cplus::spi::InternalLoggingEvent const&)@Base" 2.0.8
567+ (c++)"log4cplus::TTCCLayout::getCategoryPrefixing() const@Base" 2.0.8
568+ (c++)"log4cplus::TTCCLayout::getContextPrinting() const@Base" 2.0.8
569+ (c++)"log4cplus::TTCCLayout::getThreadPrinting() const@Base" 2.0.8
570+ (c++)"log4cplus::TTCCLayout::setCategoryPrefixing(bool)@Base" 2.0.8
571+ (c++)"log4cplus::TTCCLayout::setContextPrinting(bool)@Base" 2.0.8
572+ (c++)"log4cplus::TTCCLayout::setThreadPrinting(bool)@Base" 2.0.8
573+ (c++)"log4cplus::TTCCLayout::~TTCCLayout()@Base" 2.0.8
574+ (c++)"log4cplus::TTCCLayout::TTCCLayout(bool, bool, bool, bool)@Base" 2.0.8
575+ (c++)"log4cplus::TTCCLayout::TTCCLayout(log4cplus::helpers::Properties const&)@Base" 2.0.8
576+ (c++)"log4cplus::version@Base" 2.0.8
577+ (c++)"log4cplus::versionStr@Base" 2.0.8
578+ (c++)"non-virtual thunk to log4cplus::AsyncAppender::~AsyncAppender()@Base" 2.0.8
579+ (c++)"typeinfo for log4cplus::Appender@Base" 2.0.8
580+ (c++)"typeinfo for log4cplus::AsyncAppender@Base" 2.0.8
581+ (c++)"typeinfo for log4cplus::BasicConfigurator@Base" 2.0.8
582+ (c++)"typeinfo for log4cplus::CallbackAppender@Base" 2.0.8
583+ (c++)"typeinfo for log4cplus::ConfigureAndWatchThread@Base" 2.0.8
584+ (c++)"typeinfo for log4cplus::ConsoleAppender@Base" 2.0.8
585+ (c++)"typeinfo for log4cplus::DailyRollingFileAppender@Base" 2.0.8
586+ (c++)"typeinfo for log4cplus::DefaultLoggerFactory@Base" 2.0.8
587+ (c++)"typeinfo for log4cplus::ErrorHandler@Base" 2.0.8
588+ (c++)"typeinfo for log4cplus::FileAppender@Base" 2.0.8
589+ (c++)"typeinfo for log4cplus::FileAppenderBase@Base" 2.0.8
590+ (c++)"typeinfo for log4cplus::helpers::AbstractSocket@Base" 2.0.8
591+ (c++)"typeinfo for log4cplus::helpers::AppenderAttachableImpl@Base" 2.0.8
592+ (c++)"typeinfo for log4cplus::helpers::ConnectorThread@Base" 2.0.8
593+ (c++)"typeinfo for log4cplus::helpers::IConnectorThreadClient@Base" 2.0.8
594+ (c++)"typeinfo for log4cplus::helpers::LogLog@Base" 2.0.8
595+ (c++)"typeinfo for log4cplus::helpers::Properties@Base" 2.0.8
596+ (c++)"typeinfo for log4cplus::helpers::ServerSocket@Base" 2.0.8
597+ (c++)"typeinfo for log4cplus::helpers::SharedObject@Base" 2.0.8
598+ (c++)"typeinfo for log4cplus::helpers::Socket@Base" 2.0.8
599+ (c++)"typeinfo for log4cplus::helpers::SocketBuffer@Base" 2.0.8
600+ (c++)"typeinfo for log4cplus::Hierarchy@Base" 2.0.8
601+ (c++)"typeinfo for log4cplus::Layout@Base" 2.0.8
602+ (c++)"typeinfo for log4cplus::Log4jUdpAppender@Base" 2.0.8
603+ (c++)"typeinfo for log4cplus::Logger@Base" 2.0.8
604+ (c++)"typeinfo for log4cplus::MDC@Base" 2.0.8
605+ (c++)"typeinfo for log4cplus::NDC@Base" 2.0.8
606+ (c++)"typeinfo for log4cplus::NullAppender@Base" 2.0.8
607+ (c++)"typeinfo for log4cplus::OnlyOnceErrorHandler@Base" 2.0.8
608+ (c++)"typeinfo for log4cplus::PatternLayout@Base" 2.0.8
609+ (c++)"typeinfo for log4cplus::PropertyConfigurator@Base" 2.0.8
610+ (c++)"typeinfo for log4cplus::RollingFileAppender@Base" 2.0.8
611+ (c++)"typeinfo for log4cplus::SimpleLayout@Base" 2.0.8
612+ (c++)"typeinfo for log4cplus::SocketAppender@Base" 2.0.8
613+ (c++)"typeinfo for log4cplus::spi::AppenderAttachable@Base" 2.0.8
614+ (c++)"typeinfo for log4cplus::spi::AppenderFactory@Base" 2.0.8
615+ (c++)"typeinfo for log4cplus::spi::BaseFactory@Base" 2.0.8
616+ (c++)"typeinfo for log4cplus::spi::DenyAllFilter@Base" 2.0.8
617+ (c++)"typeinfo for log4cplus::spi::Filter@Base" 2.0.8
618+ (c++)"typeinfo for log4cplus::spi::FilterFactory@Base" 2.0.8
619+ (c++)"typeinfo for log4cplus::spi::FunctionFilter@Base" 2.0.8
620+ (c++)"typeinfo for log4cplus::spi::InternalLoggingEvent@Base" 2.0.8
621+ (c++)"typeinfo for log4cplus::spi::LayoutFactory@Base" 2.0.8
622+ (c++)"typeinfo for log4cplus::spi::LocaleFactory@Base" 2.0.8
623+ (c++)"typeinfo for log4cplus::spi::LoggerFactory@Base" 2.0.8
624+ (c++)"typeinfo for log4cplus::spi::LoggerImpl@Base" 2.0.8
625+ (c++)"typeinfo for log4cplus::spi::LogLevelMatchFilter@Base" 2.0.8
626+ (c++)"typeinfo for log4cplus::spi::LogLevelRangeFilter@Base" 2.0.8
627+ (c++)"typeinfo for log4cplus::spi::MDCMatchFilter@Base" 2.0.8
628+ (c++)"typeinfo for log4cplus::spi::NDCMatchFilter@Base" 2.0.8
629+ (c++)"typeinfo for log4cplus::spi::ObjectRegistryBase@Base" 2.0.8
630+ (c++)"typeinfo for log4cplus::spi::RootLogger@Base" 2.0.8
631+ (c++)"typeinfo for log4cplus::spi::StringMatchFilter@Base" 2.0.8
632+ (c++)"typeinfo for log4cplus::SysLogAppender@Base" 2.0.8
633+ (c++)"typeinfo for log4cplus::thread::AbstractThread@Base" 2.0.8
634+ (c++)"typeinfo for log4cplus::thread::Queue@Base" 2.0.8
635+ (c++)"typeinfo for log4cplus::TimeBasedRollingFileAppender@Base" 2.0.8
636+ (c++)"typeinfo for log4cplus::TTCCLayout@Base" 2.0.8
637+ (c++)"typeinfo name for log4cplus::Appender@Base" 2.0.8
638+ (c++)"typeinfo name for log4cplus::AsyncAppender@Base" 2.0.8
639+ (c++)"typeinfo name for log4cplus::BasicConfigurator@Base" 2.0.8
640+ (c++)"typeinfo name for log4cplus::CallbackAppender@Base" 2.0.8
641+ (c++)"typeinfo name for log4cplus::ConfigureAndWatchThread@Base" 2.0.8
642+ (c++)"typeinfo name for log4cplus::ConsoleAppender@Base" 2.0.8
643+ (c++)"typeinfo name for log4cplus::DailyRollingFileAppender@Base" 2.0.8
644+ (c++)"typeinfo name for log4cplus::DefaultLoggerFactory@Base" 2.0.8
645+ (c++)"typeinfo name for log4cplus::ErrorHandler@Base" 2.0.8
646+ (c++)"typeinfo name for log4cplus::FileAppender@Base" 2.0.8
647+ (c++)"typeinfo name for log4cplus::FileAppenderBase@Base" 2.0.8
648+ (c++)"typeinfo name for log4cplus::helpers::AbstractSocket@Base" 2.0.8
649+ (c++)"typeinfo name for log4cplus::helpers::AppenderAttachableImpl@Base" 2.0.8
650+ (c++)"typeinfo name for log4cplus::helpers::ConnectorThread@Base" 2.0.8
651+ (c++)"typeinfo name for log4cplus::helpers::IConnectorThreadClient@Base" 2.0.8
652+ (c++)"typeinfo name for log4cplus::helpers::LogLog@Base" 2.0.8
653+ (c++)"typeinfo name for log4cplus::helpers::Properties@Base" 2.0.8
654+ (c++)"typeinfo name for log4cplus::helpers::ServerSocket@Base" 2.0.8
655+ (c++)"typeinfo name for log4cplus::helpers::SharedObject@Base" 2.0.8
656+ (c++)"typeinfo name for log4cplus::helpers::Socket@Base" 2.0.8
657+ (c++)"typeinfo name for log4cplus::helpers::SocketBuffer@Base" 2.0.8
658+ (c++)"typeinfo name for log4cplus::Hierarchy@Base" 2.0.8
659+ (c++)"typeinfo name for log4cplus::Layout@Base" 2.0.8
660+ (c++)"typeinfo name for log4cplus::Log4jUdpAppender@Base" 2.0.8
661+ (c++)"typeinfo name for log4cplus::Logger@Base" 2.0.8
662+ (c++)"typeinfo name for log4cplus::MDC@Base" 2.0.8
663+ (c++)"typeinfo name for log4cplus::NDC@Base" 2.0.8
664+ (c++)"typeinfo name for log4cplus::NullAppender@Base" 2.0.8
665+ (c++)"typeinfo name for log4cplus::OnlyOnceErrorHandler@Base" 2.0.8
666+ (c++)"typeinfo name for log4cplus::PatternLayout@Base" 2.0.8
667+ (c++)"typeinfo name for log4cplus::PropertyConfigurator@Base" 2.0.8
668+ (c++)"typeinfo name for log4cplus::RollingFileAppender@Base" 2.0.8
669+ (c++)"typeinfo name for log4cplus::SimpleLayout@Base" 2.0.8
670+ (c++)"typeinfo name for log4cplus::SocketAppender@Base" 2.0.8
671+ (c++)"typeinfo name for log4cplus::spi::AppenderAttachable@Base" 2.0.8
672+ (c++)"typeinfo name for log4cplus::spi::AppenderFactory@Base" 2.0.8
673+ (c++)"typeinfo name for log4cplus::spi::BaseFactory@Base" 2.0.8
674+ (c++)"typeinfo name for log4cplus::spi::DenyAllFilter@Base" 2.0.8
675+ (c++)"typeinfo name for log4cplus::spi::FactoryRegistry<log4cplus::spi::AppenderFactory>@Base" 2.0.8
676+ (c++)"typeinfo name for log4cplus::spi::FactoryRegistry<log4cplus::spi::FilterFactory>@Base" 2.0.8
677+ (c++)"typeinfo name for log4cplus::spi::FactoryRegistry<log4cplus::spi::LayoutFactory>@Base" 2.0.8
678+ (c++)"typeinfo name for log4cplus::spi::FactoryRegistry<log4cplus::spi::LocaleFactory>@Base" 2.0.8
679+ (c++)"typeinfo name for log4cplus::spi::Filter@Base" 2.0.8
680+ (c++)"typeinfo name for log4cplus::spi::FilterFactory@Base" 2.0.8
681+ (c++)"typeinfo name for log4cplus::spi::FunctionFilter@Base" 2.0.8
682+ (c++)"typeinfo name for log4cplus::spi::InternalLoggingEvent@Base" 2.0.8
683+ (c++)"typeinfo name for log4cplus::spi::LayoutFactory@Base" 2.0.8
684+ (c++)"typeinfo name for log4cplus::spi::LocaleFactory@Base" 2.0.8
685+ (c++)"typeinfo name for log4cplus::spi::LoggerFactory@Base" 2.0.8
686+ (c++)"typeinfo name for log4cplus::spi::LoggerImpl@Base" 2.0.8
687+ (c++)"typeinfo name for log4cplus::spi::LogLevelMatchFilter@Base" 2.0.8
688+ (c++)"typeinfo name for log4cplus::spi::LogLevelRangeFilter@Base" 2.0.8
689+ (c++)"typeinfo name for log4cplus::spi::MDCMatchFilter@Base" 2.0.8
690+ (c++)"typeinfo name for log4cplus::spi::NDCMatchFilter@Base" 2.0.8
691+ (c++)"typeinfo name for log4cplus::spi::ObjectRegistryBase@Base" 2.0.8
692+ (c++)"typeinfo name for log4cplus::spi::RootLogger@Base" 2.0.8
693+ (c++)"typeinfo name for log4cplus::spi::StringMatchFilter@Base" 2.0.8
694+ (c++)"typeinfo name for log4cplus::SysLogAppender@Base" 2.0.8
695+ (c++)"typeinfo name for log4cplus::thread::AbstractThread@Base" 2.0.8
696+ (c++)"typeinfo name for log4cplus::thread::Queue@Base" 2.0.8
697+ (c++)"typeinfo name for log4cplus::TimeBasedRollingFileAppender@Base" 2.0.8
698+ (c++)"typeinfo name for log4cplus::TTCCLayout@Base" 2.0.8
699+ (c++)"virtual thunk to log4cplus::Appender::~Appender()@Base" 2.0.8
700+ (c++)"virtual thunk to log4cplus::AsyncAppender::~AsyncAppender()@Base" 2.0.8
701+ (c++)"virtual thunk to log4cplus::CallbackAppender::~CallbackAppender()@Base" 2.0.8
702+ (c++)"virtual thunk to log4cplus::ConsoleAppender::~ConsoleAppender()@Base" 2.0.8
703+ (c++)"virtual thunk to log4cplus::DailyRollingFileAppender::~DailyRollingFileAppender()@Base" 2.0.8
704+ (c++)"virtual thunk to log4cplus::FileAppender::~FileAppender()@Base" 2.0.8
705+ (c++)"virtual thunk to log4cplus::helpers::ConnectorThread::~ConnectorThread()@Base" 2.0.8
706+ (c++)"virtual thunk to log4cplus::Log4jUdpAppender::~Log4jUdpAppender()@Base" 2.0.8
707+ (c++)"virtual thunk to log4cplus::NullAppender::~NullAppender()@Base" 2.0.8
708+ (c++)"virtual thunk to log4cplus::RollingFileAppender::~RollingFileAppender()@Base" 2.0.8
709+ (c++)"virtual thunk to log4cplus::SocketAppender::ctcConnect()@Base" 2.0.8
710+ (c++)"virtual thunk to log4cplus::SocketAppender::ctcGetAccessMutex() const@Base" 2.0.8
711+ (c++)"virtual thunk to log4cplus::SocketAppender::ctcGetSocket()@Base" 2.0.8
712+ (c++)"virtual thunk to log4cplus::SocketAppender::ctcSetConnected()@Base" 2.0.8
713+ (c++)"virtual thunk to log4cplus::SocketAppender::~SocketAppender()@Base" 2.0.8
714+ (c++)"virtual thunk to log4cplus::spi::Filter::~Filter()@Base" 2.0.8
715+ (c++)"virtual thunk to log4cplus::spi::LoggerImpl::~LoggerImpl()@Base" 2.0.8
716+ (c++)"virtual thunk to log4cplus::SysLogAppender::ctcConnect()@Base" 2.0.8
717+ (c++)"virtual thunk to log4cplus::SysLogAppender::ctcGetAccessMutex() const@Base" 2.0.8
718+ (c++)"virtual thunk to log4cplus::SysLogAppender::ctcGetSocket()@Base" 2.0.8
719+ (c++)"virtual thunk to log4cplus::SysLogAppender::ctcSetConnected()@Base" 2.0.8
720+ (c++)"virtual thunk to log4cplus::SysLogAppender::~SysLogAppender()@Base" 2.0.8
721+ (c++)"virtual thunk to log4cplus::thread::AbstractThread::~AbstractThread()@Base" 2.0.8
722+ (c++)"virtual thunk to log4cplus::thread::Queue::~Queue()@Base" 2.0.8
723+ (c++)"virtual thunk to log4cplus::TimeBasedRollingFileAppender::~TimeBasedRollingFileAppender()@Base" 2.0.8
724+ (c++)"vtable for log4cplus::Appender@Base" 2.0.8
725+ (c++)"vtable for log4cplus::AsyncAppender@Base" 2.0.8
726+ (c++)"vtable for log4cplus::BasicConfigurator@Base" 2.0.8
727+ (c++)"vtable for log4cplus::CallbackAppender@Base" 2.0.8
728+ (c++)"vtable for log4cplus::ConfigureAndWatchThread@Base" 2.0.8
729+ (c++)"vtable for log4cplus::ConsoleAppender@Base" 2.0.8
730+ (c++)"vtable for log4cplus::DailyRollingFileAppender@Base" 2.0.8
731+ (c++)"vtable for log4cplus::DefaultLoggerFactory@Base" 2.0.8
732+ (c++)"vtable for log4cplus::FileAppender@Base" 2.0.8
733+ (c++)"vtable for log4cplus::FileAppenderBase@Base" 2.0.8
734+ (c++)"vtable for log4cplus::helpers::AbstractSocket@Base" 2.0.8
735+ (c++)"vtable for log4cplus::helpers::AppenderAttachableImpl@Base" 2.0.8
736+ (c++)"vtable for log4cplus::helpers::ConnectorThread@Base" 2.0.8
737+ (c++)"vtable for log4cplus::helpers::IConnectorThreadClient@Base" 2.0.8
738+ (c++)"vtable for log4cplus::helpers::LogLog@Base" 2.0.8
739+ (c++)"vtable for log4cplus::helpers::Properties@Base" 2.0.8
740+ (c++)"vtable for log4cplus::helpers::ServerSocket@Base" 2.0.8
741+ (c++)"vtable for log4cplus::helpers::SharedObject@Base" 2.0.8
742+ (c++)"vtable for log4cplus::helpers::Socket@Base" 2.0.8
743+ (c++)"vtable for log4cplus::helpers::SocketBuffer@Base" 2.0.8
744+ (c++)"vtable for log4cplus::Hierarchy@Base" 2.0.8
745+ (c++)"vtable for log4cplus::Log4jUdpAppender@Base" 2.0.8
746+ (c++)"vtable for log4cplus::Logger@Base" 2.0.8
747+ (c++)"vtable for log4cplus::MDC@Base" 2.0.8
748+ (c++)"vtable for log4cplus::NDC@Base" 2.0.8
749+ (c++)"vtable for log4cplus::NullAppender@Base" 2.0.8
750+ (c++)"vtable for log4cplus::OnlyOnceErrorHandler@Base" 2.0.8
751+ (c++)"vtable for log4cplus::PatternLayout@Base" 2.0.8
752+ (c++)"vtable for log4cplus::PropertyConfigurator@Base" 2.0.8
753+ (c++)"vtable for log4cplus::RollingFileAppender@Base" 2.0.8
754+ (c++)"vtable for log4cplus::SimpleLayout@Base" 2.0.8
755+ (c++)"vtable for log4cplus::SocketAppender@Base" 2.0.8
756+ (c++)"vtable for log4cplus::spi::DenyAllFilter@Base" 2.0.8
757+ (c++)"vtable for log4cplus::spi::Filter@Base" 2.0.8
758+ (c++)"vtable for log4cplus::spi::FunctionFilter@Base" 2.0.8
759+ (c++)"vtable for log4cplus::spi::InternalLoggingEvent@Base" 2.0.8
760+ (c++)"vtable for log4cplus::spi::LoggerImpl@Base" 2.0.8
761+ (c++)"vtable for log4cplus::spi::LogLevelMatchFilter@Base" 2.0.8
762+ (c++)"vtable for log4cplus::spi::LogLevelRangeFilter@Base" 2.0.8
763+ (c++)"vtable for log4cplus::spi::MDCMatchFilter@Base" 2.0.8
764+ (c++)"vtable for log4cplus::spi::NDCMatchFilter@Base" 2.0.8
765+ (c++)"vtable for log4cplus::spi::ObjectRegistryBase@Base" 2.0.8
766+ (c++)"vtable for log4cplus::spi::RootLogger@Base" 2.0.8
767+ (c++)"vtable for log4cplus::spi::StringMatchFilter@Base" 2.0.8
768+ (c++)"vtable for log4cplus::SysLogAppender@Base" 2.0.8
769+ (c++)"vtable for log4cplus::thread::AbstractThread@Base" 2.0.8
770+ (c++)"vtable for log4cplus::thread::Queue@Base" 2.0.8
771+ (c++)"vtable for log4cplus::TimeBasedRollingFileAppender@Base" 2.0.8
772+ (c++)"vtable for log4cplus::TTCCLayout@Base" 2.0.8
773+ (c++)"VTT for log4cplus::Appender@Base" 2.0.8
774+ (c++)"VTT for log4cplus::AsyncAppender@Base" 2.0.8
775+ (c++)"VTT for log4cplus::CallbackAppender@Base" 2.0.8
776+ (c++)"VTT for log4cplus::ConsoleAppender@Base" 2.0.8
777+ (c++)"VTT for log4cplus::DailyRollingFileAppender@Base" 2.0.8
778+ (c++)"VTT for log4cplus::FileAppender@Base" 2.0.8
779+ (c++)"VTT for log4cplus::FileAppenderBase@Base" 2.0.8
780+ (c++)"VTT for log4cplus::helpers::ConnectorThread@Base" 2.0.8
781+ (c++)"VTT for log4cplus::Log4jUdpAppender@Base" 2.0.8
782+ (c++)"VTT for log4cplus::NullAppender@Base" 2.0.8
783+ (c++)"VTT for log4cplus::RollingFileAppender@Base" 2.0.8
784+ (c++)"VTT for log4cplus::SocketAppender@Base" 2.0.8
785+ (c++)"VTT for log4cplus::spi::DenyAllFilter@Base" 2.0.8
786+ (c++)"VTT for log4cplus::spi::Filter@Base" 2.0.8
787+ (c++)"VTT for log4cplus::spi::FunctionFilter@Base" 2.0.8
788+ (c++)"VTT for log4cplus::spi::LoggerImpl@Base" 2.0.8
789+ (c++)"VTT for log4cplus::spi::LogLevelMatchFilter@Base" 2.0.8
790+ (c++)"VTT for log4cplus::spi::LogLevelRangeFilter@Base" 2.0.8
791+ (c++)"VTT for log4cplus::spi::MDCMatchFilter@Base" 2.0.8
792+ (c++)"VTT for log4cplus::spi::NDCMatchFilter@Base" 2.0.8
793+ (c++)"VTT for log4cplus::spi::RootLogger@Base" 2.0.8
794+ (c++)"VTT for log4cplus::spi::StringMatchFilter@Base" 2.0.8
795+ (c++)"VTT for log4cplus::SysLogAppender@Base" 2.0.8
796+ (c++)"VTT for log4cplus::thread::AbstractThread@Base" 2.0.8
797+ (c++)"VTT for log4cplus::thread::Queue@Base" 2.0.8
798+ (c++)"VTT for log4cplus::TimeBasedRollingFileAppender@Base" 2.0.8
799+ log4cplus_add_callback_appender@Base 2.0.8
800+ log4cplus_add_log_level@Base 2.0.8
801+ log4cplus_basic_configure@Base 2.0.8
802+ log4cplus_basic_reconfigure@Base 2.0.8
803+ log4cplus_deinitialize@Base 2.0.8
804+ log4cplus_file_configure@Base 2.0.8
805+ log4cplus_file_reconfigure@Base 2.0.8
806+ log4cplus_initialize@Base 2.0.8
807+ log4cplus_logger_exists@Base 2.0.8
808+ log4cplus_logger_force_log@Base 2.0.8
809+ log4cplus_logger_force_log_str@Base 2.0.8
810+ log4cplus_logger_is_enabled_for@Base 2.0.8
811+ log4cplus_logger_log@Base 2.0.8
812+ log4cplus_logger_log_str@Base 2.0.8
813+ log4cplus_remove_log_level@Base 2.0.8
814+ log4cplus_shutdown@Base 2.0.8
815+ log4cplus_str_configure@Base 2.0.8
816+ log4cplus_str_reconfigure@Base 2.0.8
817+# va_list differs across architectures
818+ (c++|arch=amd64 s390x)"log4cplus::helpers::snprintf_buf::print_va_list(char const*&, char const*, __va_list_tag*)@Base" 2.0.8
819+ (c++|arch=arm64 armhf)"log4cplus::helpers::snprintf_buf::print_va_list(char const*&, char const*, std::__va_list)@Base" 2.0.8
820+ (c++|arch=ppc64el)"log4cplus::helpers::snprintf_buf::print_va_list(char const*&, char const*, char*)@Base" 2.0.8
821+ (c++|arch=riscv64)"log4cplus::helpers::snprintf_buf::print_va_list(char const*&, char const*, void*)@Base" 2.0.8
822+# armhf (32-bits) behaves differently for size_t
823+ (c++|arch=!armhf)"log4cplus::DailyRollingFileAppender::calculateNextRolloverTime(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > > const&) const@Base" 2.0.8
824+ (c++|arch=armhf)"log4cplus::DailyRollingFileAppender::calculateNextRolloverTime(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > > const&) const@Base" 2.0.8
825+ (c++|arch=!armhf)"log4cplus::DailyRollingFileAppender::getFilename[abi:cxx11](std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > > const&) const@Base" 2.0.8
826+ (c++|arch=armhf)"log4cplus::DailyRollingFileAppender::getFilename[abi:cxx11](std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > > const&) const@Base" 2.0.8
827+ (c++|arch=armhf)"log4cplus::helpers::AbstractSocket::AbstractSocket(int, log4cplus::helpers::SocketState, int)@Base" 2.0.8
828+ (c++|arch=!armhf)"log4cplus::helpers::AbstractSocket::AbstractSocket(long, log4cplus::helpers::SocketState, int)@Base" 2.0.8
829+ (c++|arch=armhf)"log4cplus::helpers::acceptSocket(int, log4cplus::helpers::SocketState&)@Base" 2.0.8
830+ (c++|arch=!armhf)"log4cplus::helpers::acceptSocket(long, log4cplus::helpers::SocketState&)@Base" 2.0.8
831+ (c++|arch=armhf)"log4cplus::helpers::closeSocket(int)@Base" 2.0.8
832+ (c++|arch=!armhf)"log4cplus::helpers::closeSocket(long)@Base" 2.0.8
833+ (c++|arch=!armhf)"log4cplus::helpers::getFormattedTime(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > > const&, bool)@Base" 2.0.8
834+ (c++|arch=armhf)"log4cplus::helpers::getFormattedTime(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > > const&, bool)@Base" 2.0.8
835+ (c++|arch=!armhf)"log4cplus::helpers::gmTime(tm*, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > > const&)@Base" 2.0.8
836+ (c++|arch=armhf)"log4cplus::helpers::gmTime(tm*, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > > const&)@Base" 2.0.8
837+ (c++|arch=!armhf)"log4cplus::helpers::localTime(tm*, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > > const&)@Base" 2.0.8
838+ (c++|arch=armhf)"log4cplus::helpers::localTime(tm*, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > > const&)@Base" 2.0.8
839+ (c++|arch=armhf)"log4cplus::helpers::read(int, log4cplus::helpers::SocketBuffer&)@Base" 2.0.8
840+ (c++|arch=!armhf)"log4cplus::helpers::read(long, log4cplus::helpers::SocketBuffer&)@Base" 2.0.8
841+ (c++|arch=armhf)"log4cplus::helpers::setTCPNoDelay(int, bool)@Base" 2.0.8
842+ (c++|arch=!armhf)"log4cplus::helpers::setTCPNoDelay(long, bool)@Base" 2.0.8
843+ (c++|arch=armhf)"log4cplus::helpers::shutdownSocket(int)@Base" 2.0.8
844+ (c++|arch=!armhf)"log4cplus::helpers::shutdownSocket(long)@Base" 2.0.8
845+ (c++|arch=armhf)"log4cplus::helpers::SocketBuffer::SocketBuffer(unsigned int)@Base" 2.0.8
846+ (c++|arch=!armhf)"log4cplus::helpers::SocketBuffer::SocketBuffer(unsigned long)@Base" 2.0.8
847+ (c++|arch=armhf)"log4cplus::helpers::Socket::Socket(int, log4cplus::helpers::SocketState, int)@Base" 2.0.8
848+ (c++|arch=!armhf)"log4cplus::helpers::Socket::Socket(long, log4cplus::helpers::SocketState, int)@Base" 2.0.8
849+ (c++|arch=armhf)"log4cplus::helpers::Socket::write(unsigned int, log4cplus::helpers::SocketBuffer const* const*)@Base" 2.0.8
850+ (c++|arch=!armhf)"log4cplus::helpers::Socket::write(unsigned long, log4cplus::helpers::SocketBuffer const* const*)@Base" 2.0.8
851+ (c++|arch=armhf)"log4cplus::helpers::write(int, log4cplus::helpers::SocketBuffer const&)@Base" 2.0.8
852+ (c++|arch=armhf)"log4cplus::helpers::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
853+ (c++|arch=armhf)"log4cplus::helpers::write(int, unsigned int, log4cplus::helpers::SocketBuffer const* const*)@Base" 2.0.8
854+ (c++|arch=!armhf)"log4cplus::helpers::write(long, log4cplus::helpers::SocketBuffer const&)@Base" 2.0.8
855+ (c++|arch=!armhf)"log4cplus::helpers::write(long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
856+ (c++|arch=!armhf)"log4cplus::helpers::write(long, unsigned long, log4cplus::helpers::SocketBuffer const* const*)@Base" 2.0.8
857+ (c++|arch=armhf)"log4cplus::NDC::setMaxDepth(unsigned int)@Base" 2.0.8
858+ (c++|arch=!armhf)"log4cplus::NDC::setMaxDepth(unsigned long)@Base" 2.0.8
859+ (c++|arch=armhf)"log4cplus::setThreadPoolSize(unsigned int)@Base" 2.0.8
860+ (c++|arch=!armhf)"log4cplus::setThreadPoolSize(unsigned long)@Base" 2.0.8
861+ (c++|arch=!armhf)"log4cplus::spi::InternalLoggingEvent::InternalLoggingEvent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
862+ (c++|arch=armhf)"log4cplus::spi::InternalLoggingEvent::InternalLoggingEvent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
863+ (c++|arch=!armhf)"log4cplus::spi::InternalLoggingEvent::InternalLoggingEvent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
864+ (c++|arch=armhf)"log4cplus::spi::InternalLoggingEvent::InternalLoggingEvent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.8
865+ (c++|arch=!armhf)"log4cplus::TimeBasedRollingFileAppender::calculateNextRolloverTime(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > > const&) const@Base" 2.0.8
866+ (c++|arch=armhf)"log4cplus::TimeBasedRollingFileAppender::calculateNextRolloverTime(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > > const&) const@Base" 2.0.8
867+ (c++|arch=!armhf)"log4cplus::TimeBasedRollingFileAppender::clean(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1l, 1000000l> > >)@Base" 2.0.8
868+ (c++|arch=armhf)"log4cplus::TimeBasedRollingFileAppender::clean(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long long, std::ratio<1ll, 1000000ll> > >)@Base" 2.0.8
869+# armhf and riscv export additional symbols and templates. Include them below as optional
870+(arch=armhf riscv64))#include "liblog4cplus-2.0.5.symbols.optional"
871diff --git a/debian/liblog4cplus-2.0.5.symbols.optional b/debian/liblog4cplus-2.0.5.symbols.optional
872new file mode 100644
873index 0000000..56dc712
874--- /dev/null
875+++ b/debian/liblog4cplus-2.0.5.symbols.optional
876@@ -0,0 +1,91 @@
877+liblog4cplus-2.0.so.3 liblog4cplus-2.0.5 #MINVER#
878+ (c++|optional)"log4cplus::FileAppenderBase::~FileAppenderBase()@Base" 2.0.8
879+ (c++|optional)"log4cplus::FileAppenderBase::~FileAppenderBase()@Base" 2.0.8
880+ (c++|optional)"log4cplus::FileAppenderBase::~FileAppenderBase()@Base" 2.0.8
881+ (c++|optional)"log4cplus::DiagnosticContext::~DiagnosticContext()@Base" 2.0.8
882+ (c++|optional)"log4cplus::DiagnosticContext::~DiagnosticContext()@Base" 2.0.8
883+ (c++|optional)"log4cplus::DefaultLoggerFactory::~DefaultLoggerFactory()@Base" 2.0.8
884+ (c++|optional)"log4cplus::DefaultLoggerFactory::~DefaultLoggerFactory()@Base" 2.0.8
885+ (c++|optional)"log4cplus::DefaultLoggerFactory::~DefaultLoggerFactory()@Base" 2.0.8
886+ (c++|optional)"log4cplus::spi::RootLogger::~RootLogger()@Base" 2.0.8
887+ (c++|optional)"log4cplus::spi::RootLogger::~RootLogger()@Base" 2.0.8
888+ (c++|optional)"log4cplus::spi::DenyAllFilter::~DenyAllFilter()@Base" 2.0.8
889+ (c++|optional)"log4cplus::spi::DenyAllFilter::~DenyAllFilter()@Base" 2.0.8
890+ (c++|optional)"log4cplus::spi::FunctionFilter::~FunctionFilter()@Base" 2.0.8
891+ (c++|optional)"log4cplus::spi::FunctionFilter::~FunctionFilter()@Base" 2.0.8
892+ (c++|optional)"log4cplus::spi::MDCMatchFilter::~MDCMatchFilter()@Base" 2.0.8
893+ (c++|optional)"log4cplus::spi::MDCMatchFilter::~MDCMatchFilter()@Base" 2.0.8
894+ (c++|optional)"log4cplus::spi::NDCMatchFilter::~NDCMatchFilter()@Base" 2.0.8
895+ (c++|optional)"log4cplus::spi::NDCMatchFilter::~NDCMatchFilter()@Base" 2.0.8
896+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::FilterFactory>::~FactoryRegistry()@Base" 2.0.8
897+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::FilterFactory>::~FactoryRegistry()@Base" 2.0.8
898+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::FilterFactory>::~FactoryRegistry()@Base" 2.0.8
899+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::LayoutFactory>::~FactoryRegistry()@Base" 2.0.8
900+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::LayoutFactory>::~FactoryRegistry()@Base" 2.0.8
901+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::LayoutFactory>::~FactoryRegistry()@Base" 2.0.8
902+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::LocaleFactory>::~FactoryRegistry()@Base" 2.0.8
903+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::LocaleFactory>::~FactoryRegistry()@Base" 2.0.8
904+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::LocaleFactory>::~FactoryRegistry()@Base" 2.0.8
905+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::AppenderFactory>::~FactoryRegistry()@Base" 2.0.8
906+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::AppenderFactory>::~FactoryRegistry()@Base" 2.0.8
907+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::AppenderFactory>::~FactoryRegistry()@Base" 2.0.8
908+ (c++|optional)"log4cplus::spi::StringMatchFilter::~StringMatchFilter()@Base" 2.0.8
909+ (c++|optional)"log4cplus::spi::StringMatchFilter::~StringMatchFilter()@Base" 2.0.8
910+ (c++|optional)"log4cplus::spi::LogLevelMatchFilter::~LogLevelMatchFilter()@Base" 2.0.8
911+ (c++|optional)"log4cplus::spi::LogLevelMatchFilter::~LogLevelMatchFilter()@Base" 2.0.8
912+ (c++|optional)"log4cplus::spi::LogLevelRangeFilter::~LogLevelRangeFilter()@Base" 2.0.8
913+ (c++|optional)"log4cplus::spi::LogLevelRangeFilter::~LogLevelRangeFilter()@Base" 2.0.8
914+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::FilterFactory>::deleteObject(void*) const@Base" 2.0.8
915+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::LayoutFactory>::deleteObject(void*) const@Base" 2.0.8
916+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::LocaleFactory>::deleteObject(void*) const@Base" 2.0.8
917+ (c++|optional)"log4cplus::spi::FactoryRegistry<log4cplus::spi::AppenderFactory>::deleteObject(void*) const@Base" 2.0.8
918+ (c++|optional)"typeinfo for log4cplus::spi::FactoryRegistry<log4cplus::spi::FilterFactory>@Base" 2.0.8
919+ (c++|optional)"typeinfo for log4cplus::spi::FactoryRegistry<log4cplus::spi::LayoutFactory>@Base" 2.0.8
920+ (c++|optional)"typeinfo for log4cplus::spi::FactoryRegistry<log4cplus::spi::LocaleFactory>@Base" 2.0.8
921+ (c++|optional)"typeinfo for log4cplus::spi::FactoryRegistry<log4cplus::spi::AppenderFactory>@Base" 2.0.8
922+ (c++|optional)"virtual thunk to log4cplus::FileAppenderBase::~FileAppenderBase()@Base" 2.0.8
923+ (c++|optional)"virtual thunk to log4cplus::FileAppenderBase::~FileAppenderBase()@Base" 2.0.8
924+ (c++|optional)"virtual thunk to log4cplus::spi::RootLogger::~RootLogger()@Base" 2.0.8
925+ (c++|optional)"virtual thunk to log4cplus::spi::RootLogger::~RootLogger()@Base" 2.0.8
926+ (c++|optional)"virtual thunk to log4cplus::spi::DenyAllFilter::~DenyAllFilter()@Base" 2.0.8
927+ (c++|optional)"virtual thunk to log4cplus::spi::DenyAllFilter::~DenyAllFilter()@Base" 2.0.8
928+ (c++|optional)"virtual thunk to log4cplus::spi::FunctionFilter::~FunctionFilter()@Base" 2.0.8
929+ (c++|optional)"virtual thunk to log4cplus::spi::FunctionFilter::~FunctionFilter()@Base" 2.0.8
930+ (c++|optional)"virtual thunk to log4cplus::spi::MDCMatchFilter::~MDCMatchFilter()@Base" 2.0.8
931+ (c++|optional)"virtual thunk to log4cplus::spi::MDCMatchFilter::~MDCMatchFilter()@Base" 2.0.8
932+ (c++|optional)"virtual thunk to log4cplus::spi::NDCMatchFilter::~NDCMatchFilter()@Base" 2.0.8
933+ (c++|optional)"virtual thunk to log4cplus::spi::NDCMatchFilter::~NDCMatchFilter()@Base" 2.0.8
934+ (c++|optional)"virtual thunk to log4cplus::spi::StringMatchFilter::~StringMatchFilter()@Base" 2.0.8
935+ (c++|optional)"virtual thunk to log4cplus::spi::StringMatchFilter::~StringMatchFilter()@Base" 2.0.8
936+ (c++|optional)"virtual thunk to log4cplus::spi::LogLevelMatchFilter::~LogLevelMatchFilter()@Base" 2.0.8
937+ (c++|optional)"virtual thunk to log4cplus::spi::LogLevelMatchFilter::~LogLevelMatchFilter()@Base" 2.0.8
938+ (c++|optional)"virtual thunk to log4cplus::spi::LogLevelRangeFilter::~LogLevelRangeFilter()@Base" 2.0.8
939+ (c++|optional)"virtual thunk to log4cplus::spi::LogLevelRangeFilter::~LogLevelRangeFilter()@Base" 2.0.8
940+ (c++|optional)"virtual thunk to log4cplus::FileAppenderBase::~FileAppenderBase()@Base" 2.0.8
941+ (c++|optional)"virtual thunk to log4cplus::FileAppenderBase::~FileAppenderBase()@Base" 2.0.8
942+ (c++|optional)"virtual thunk to log4cplus::spi::RootLogger::~RootLogger()@Base" 2.0.8
943+ (c++|optional)"virtual thunk to log4cplus::spi::RootLogger::~RootLogger()@Base" 2.0.8
944+ (c++|optional)"virtual thunk to log4cplus::spi::DenyAllFilter::~DenyAllFilter()@Base" 2.0.8
945+ (c++|optional)"virtual thunk to log4cplus::spi::DenyAllFilter::~DenyAllFilter()@Base" 2.0.8
946+ (c++|optional)"virtual thunk to log4cplus::spi::FunctionFilter::~FunctionFilter()@Base" 2.0.8
947+ (c++|optional)"virtual thunk to log4cplus::spi::FunctionFilter::~FunctionFilter()@Base" 2.0.8
948+ (c++|optional)"virtual thunk to log4cplus::spi::MDCMatchFilter::~MDCMatchFilter()@Base" 2.0.8
949+ (c++|optional)"virtual thunk to log4cplus::spi::MDCMatchFilter::~MDCMatchFilter()@Base" 2.0.8
950+ (c++|optional)"virtual thunk to log4cplus::spi::NDCMatchFilter::~NDCMatchFilter()@Base" 2.0.8
951+ (c++|optional)"virtual thunk to log4cplus::spi::NDCMatchFilter::~NDCMatchFilter()@Base" 2.0.8
952+ (c++|optional)"virtual thunk to log4cplus::spi::StringMatchFilter::~StringMatchFilter()@Base" 2.0.8
953+ (c++|optional)"virtual thunk to log4cplus::spi::StringMatchFilter::~StringMatchFilter()@Base" 2.0.8
954+ (c++|optional)"virtual thunk to log4cplus::spi::LogLevelMatchFilter::~LogLevelMatchFilter()@Base" 2.0.8
955+ (c++|optional)"virtual thunk to log4cplus::spi::LogLevelMatchFilter::~LogLevelMatchFilter()@Base" 2.0.8
956+ (c++|optional)"virtual thunk to log4cplus::spi::LogLevelRangeFilter::~LogLevelRangeFilter()@Base" 2.0.8
957+ (c++|optional)"virtual thunk to log4cplus::spi::LogLevelRangeFilter::~LogLevelRangeFilter()@Base" 2.0.8
958+ (c++|optional)"vtable for log4cplus::ErrorHandler@Base" 2.0.8
959+ (c++|optional)"vtable for log4cplus::spi::FilterFactory@Base" 2.0.8
960+ (c++|optional)"vtable for log4cplus::spi::LayoutFactory@Base" 2.0.8
961+ (c++|optional)"vtable for log4cplus::spi::LocaleFactory@Base" 2.0.8
962+ (c++|optional)"vtable for log4cplus::spi::AppenderFactory@Base" 2.0.8
963+ (c++|optional)"vtable for log4cplus::spi::FactoryRegistry<log4cplus::spi::FilterFactory>@Base" 2.0.8
964+ (c++|optional)"vtable for log4cplus::spi::FactoryRegistry<log4cplus::spi::LayoutFactory>@Base" 2.0.8
965+ (c++|optional)"vtable for log4cplus::spi::FactoryRegistry<log4cplus::spi::LocaleFactory>@Base" 2.0.8
966+ (c++|optional)"vtable for log4cplus::spi::FactoryRegistry<log4cplus::spi::AppenderFactory>@Base" 2.0.8
967+ (c++|optional)"vtable for log4cplus::Layout@Base" 2.0.8
968diff --git a/debian/rules b/debian/rules
969index 46a9d88..5c3caff 100755
970--- a/debian/rules
971+++ b/debian/rules
972@@ -4,8 +4,9 @@ DH_VERBOSE=1
973
974 include /usr/share/dpkg/default.mk
975
976-export DEB_CXXFLAGS_MAINT_APPEND := --std=c++11
977+export DEB_CXXFLAGS_MAINT_APPEND := --std=c++11 -fvisibility=hidden
978 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
979+export DEB_LDFLAGS_MAINT_APPEND = -Wl,--version-script="$(CURDIR)/debian/export-map.ld"
980
981 %:
982 dh $@ --buildsystem=cmake
983diff --git a/debian/tests/control b/debian/tests/control
984new file mode 100644
985index 0000000..b793677
986--- /dev/null
987+++ b/debian/tests/control
988@@ -0,0 +1,2 @@
989+Tests: run-examples
990+Depends: liblog4cplus-2.0.5, liblog4cplus-dev, g++
991diff --git a/debian/tests/examples/hello.cpp b/debian/tests/examples/hello.cpp
992new file mode 100644
993index 0000000..b859702
994--- /dev/null
995+++ b/debian/tests/examples/hello.cpp
996@@ -0,0 +1,19 @@
997+#include <log4cplus/logger.h>
998+#include <log4cplus/loggingmacros.h>
999+#include <log4cplus/configurator.h>
1000+#include <log4cplus/initializer.h>
1001+
1002+int
1003+main()
1004+{
1005+ // Initialization and deinitialization.
1006+ log4cplus::Initializer initializer;
1007+
1008+ log4cplus::BasicConfigurator config;
1009+ config.configure();
1010+
1011+ log4cplus::Logger logger = log4cplus::Logger::getInstance(
1012+ LOG4CPLUS_TEXT("main"));
1013+ LOG4CPLUS_WARN(logger, LOG4CPLUS_TEXT("Hello, World!"));
1014+ return 0;
1015+}
1016diff --git a/debian/tests/examples/hello.expected b/debian/tests/examples/hello.expected
1017new file mode 100644
1018index 0000000..2de4cd1
1019--- /dev/null
1020+++ b/debian/tests/examples/hello.expected
1021@@ -0,0 +1 @@
1022+WARN - Hello, World!
1023diff --git a/debian/tests/examples/loglevel.cpp b/debian/tests/examples/loglevel.cpp
1024new file mode 100644
1025index 0000000..dd9c5de
1026--- /dev/null
1027+++ b/debian/tests/examples/loglevel.cpp
1028@@ -0,0 +1,55 @@
1029+#include <log4cplus/logger.h>
1030+#include <log4cplus/loglevel.h>
1031+#include <log4cplus/loggingmacros.h>
1032+#include <log4cplus/configurator.h>
1033+#include <log4cplus/initializer.h>
1034+#include <iomanip>
1035+
1036+void
1037+printMessages(log4cplus::Logger const & logger)
1038+{
1039+ // Print messages using all common log levels.
1040+ LOG4CPLUS_TRACE (logger, "printMessages()");
1041+ LOG4CPLUS_DEBUG (logger, "This is a DEBUG message");
1042+ LOG4CPLUS_INFO (logger, "This is a INFO message");
1043+ LOG4CPLUS_WARN (logger, "This is a WARN message");
1044+ LOG4CPLUS_ERROR (logger, "This is a ERROR message");
1045+ LOG4CPLUS_FATAL (logger, "This is a FATAL message");
1046+}
1047+
1048+void
1049+thresholdTest(log4cplus::LogLevel ll)
1050+{
1051+ log4cplus::Logger logger
1052+ = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("main"));
1053+
1054+ // Set log level threshold on logger.
1055+ logger.setLogLevel(ll);
1056+
1057+ // Print messages.
1058+ log4cplus::tcout
1059+ << LOG4CPLUS_TEXT("*** calling printMessages() with ")
1060+ << log4cplus::getLogLevelManager().toString(ll)
1061+ << LOG4CPLUS_TEXT(" set: ***")
1062+ << std::endl;
1063+ printMessages(logger);
1064+ log4cplus::tcout << std::endl;
1065+}
1066+
1067+int
1068+main()
1069+{
1070+ log4cplus::Initializer initializer;
1071+
1072+ log4cplus::BasicConfigurator config;
1073+ config.configure();
1074+
1075+ thresholdTest(log4cplus::TRACE_LOG_LEVEL);
1076+ thresholdTest(log4cplus::DEBUG_LOG_LEVEL);
1077+ thresholdTest(log4cplus::INFO_LOG_LEVEL);
1078+ thresholdTest(log4cplus::WARN_LOG_LEVEL);
1079+ thresholdTest(log4cplus::ERROR_LOG_LEVEL);
1080+ thresholdTest(log4cplus::FATAL_LOG_LEVEL);
1081+
1082+ return 0;
1083+}
1084diff --git a/debian/tests/examples/loglevel.expected b/debian/tests/examples/loglevel.expected
1085new file mode 100644
1086index 0000000..b6e1605
1087--- /dev/null
1088+++ b/debian/tests/examples/loglevel.expected
1089@@ -0,0 +1,33 @@
1090+*** calling printMessages() with TRACE set: ***
1091+TRACE - printMessages()
1092+DEBUG - This is a DEBUG message
1093+INFO - This is a INFO message
1094+WARN - This is a WARN message
1095+ERROR - This is a ERROR message
1096+FATAL - This is a FATAL message
1097+
1098+*** calling printMessages() with DEBUG set: ***
1099+DEBUG - This is a DEBUG message
1100+INFO - This is a INFO message
1101+WARN - This is a WARN message
1102+ERROR - This is a ERROR message
1103+FATAL - This is a FATAL message
1104+
1105+*** calling printMessages() with INFO set: ***
1106+INFO - This is a INFO message
1107+WARN - This is a WARN message
1108+ERROR - This is a ERROR message
1109+FATAL - This is a FATAL message
1110+
1111+*** calling printMessages() with WARN set: ***
1112+WARN - This is a WARN message
1113+ERROR - This is a ERROR message
1114+FATAL - This is a FATAL message
1115+
1116+*** calling printMessages() with ERROR set: ***
1117+ERROR - This is a ERROR message
1118+FATAL - This is a FATAL message
1119+
1120+*** calling printMessages() with FATAL set: ***
1121+FATAL - This is a FATAL message
1122+
1123diff --git a/debian/tests/examples/macros.cpp b/debian/tests/examples/macros.cpp
1124new file mode 100644
1125index 0000000..57c130d
1126--- /dev/null
1127+++ b/debian/tests/examples/macros.cpp
1128@@ -0,0 +1,47 @@
1129+#include <log4cplus/logger.h>
1130+#include <log4cplus/loggingmacros.h>
1131+#include <log4cplus/configurator.h>
1132+#include <log4cplus/initializer.h>
1133+#include <iomanip>
1134+
1135+int
1136+main()
1137+{
1138+ log4cplus::Initializer initializer;
1139+
1140+ log4cplus::BasicConfigurator config;
1141+ config.configure();
1142+
1143+ log4cplus::Logger logger = log4cplus::Logger::getInstance(
1144+ LOG4CPLUS_TEXT("main"));
1145+
1146+ LOG4CPLUS_INFO(logger,
1147+ LOG4CPLUS_TEXT("This is")
1148+ << LOG4CPLUS_TEXT(" a reall")
1149+ << LOG4CPLUS_TEXT("y long message.") << std::endl
1150+ << LOG4CPLUS_TEXT("Just testing it out") << std::endl
1151+ << LOG4CPLUS_TEXT("What do you think?"));
1152+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a bool: ") << true);
1153+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a char: ")
1154+ << LOG4CPLUS_TEXT('x'));
1155+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a short: ")
1156+ << static_cast<short>(-100));
1157+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a unsigned short: ")
1158+ << static_cast<unsigned short>(100));
1159+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a int: ") << 1000);
1160+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a unsigned int: ") << 1000U);
1161+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a long(hex): ")
1162+ << std::hex << 100000000L);
1163+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a unsigned long: ")
1164+ << static_cast<unsigned long>(100000000U));
1165+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a float: ") << 1.2345f);
1166+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a double: ")
1167+ << std::setprecision(15)
1168+ << 1.2345234234);
1169+ LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("This is a long double: ")
1170+ << std::setprecision(15)
1171+ << 123452342342.342L);
1172+
1173+ return 0;
1174+}
1175+
1176diff --git a/debian/tests/examples/macros.expected b/debian/tests/examples/macros.expected
1177new file mode 100644
1178index 0000000..772b8da
1179--- /dev/null
1180+++ b/debian/tests/examples/macros.expected
1181@@ -0,0 +1,14 @@
1182+INFO - This is a really long message.
1183+Just testing it out
1184+What do you think?
1185+INFO - This is a bool: 1
1186+INFO - This is a char: x
1187+INFO - This is a short: -100
1188+INFO - This is a unsigned short: 100
1189+INFO - This is a int: 1000
1190+INFO - This is a unsigned int: 1000
1191+INFO - This is a long(hex): 5f5e100
1192+INFO - This is a unsigned long: 100000000
1193+INFO - This is a float: 1.2345
1194+INFO - This is a double: 1.2345234234
1195+INFO - This is a long double: 123452342342.342
1196diff --git a/debian/tests/run-examples b/debian/tests/run-examples
1197new file mode 100755
1198index 0000000..58534ac
1199--- /dev/null
1200+++ b/debian/tests/run-examples
1201@@ -0,0 +1,17 @@
1202+#!/bin/bash
1203+
1204+# This is a set of examples taken from upstream's docs/examples.md
1205+
1206+set -e
1207+
1208+# Hello world test
1209+g++ -o ${AUTOPKGTEST_TMP}/hello $(dirname $0)/examples/hello.cpp -llog4cplus
1210+diff $(dirname $0)/examples/hello.expected <(${AUTOPKGTEST_TMP}/hello)
1211+
1212+# Test macros
1213+g++ -o ${AUTOPKGTEST_TMP}/macros $(dirname $0)/examples/macros.cpp -llog4cplus
1214+diff $(dirname $0)/examples/macros.expected <(${AUTOPKGTEST_TMP}/macros)
1215+
1216+# Log levels
1217+g++ -o ${AUTOPKGTEST_TMP}/loglevel $(dirname $0)/examples/loglevel.cpp -llog4cplus
1218+diff $(dirname $0)/examples/loglevel.expected <(${AUTOPKGTEST_TMP}/loglevel)

Subscribers

People subscribed via source and target branches