Apache Log4cxx  Version 1.5.0
Loading...
Searching...
No Matches
appenderattachableimpl.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef _LOG4CXX_HELPERS_APPENDER_ATTACHABLE_IMPL_H
19#define _LOG4CXX_HELPERS_APPENDER_ATTACHABLE_IMPL_H
20
21
24#include <log4cxx/log4cxx.h>
25
26namespace LOG4CXX_NS
27{
28namespace spi
29{
30class LoggingEvent;
31typedef std::shared_ptr<LoggingEvent> LoggingEventPtr;
32}
33
34namespace helpers
35{
36
37class LOG4CXX_EXPORT AppenderAttachableImpl :
38 public virtual spi::AppenderAttachable
39{
40 protected:
41 AppenderList& appenderList();
42
43 public:
48#if LOG4CXX_ABI_VERSION <= 15
49 [[ deprecated( "Pool is no longer required" ) ]]
51#endif
53
57 LOG4CXX_CAST_ENTRY(spi::AppenderAttachable)
59
60 // Methods
64 void addAppender(const AppenderPtr newAppender) override;
65
69 int appendLoopOnAppenders(const spi::LoggingEventPtr& event,
70 LOG4CXX_NS::helpers::Pool& p);
71
75 AppenderList getAllAppenders() const override;
76
80 AppenderPtr getAppender(const LogString& name) const override;
81
86 bool isAttached(const AppenderPtr appender) const override;
87
91 void removeAllAppenders() override;
92
96 void removeAppender(const AppenderPtr appender) override;
97
102 void removeAppender(const LogString& name) override;
103
108 bool replaceAppender(const AppenderPtr& oldAppender, const AppenderPtr& newAppender) LOG4CXX_16_VIRTUAL_SPECIFIER;
109
113 void replaceAppenders(const AppenderList& newList) LOG4CXX_16_VIRTUAL_SPECIFIER;
114
115 private:
116 LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(priv_data, m_priv)
117
120};
121
123
124}
125}
126
127
128#endif //_LOG4CXX_HELPERS_APPENDER_ATTACHABLE_IMPL_H
#define LOG4CXX_16_VIRTUAL_SPECIFIER
Definition appenderattachable.h:99
Definition appenderattachableimpl.h:39
void removeAppender(const AppenderPtr appender) override
Remove the appender passed as parameter from the list of appenders.
void removeAllAppenders() override
Remove all previously added appenders.
void addAppender(const AppenderPtr newAppender) override
Add an appender.
AppenderPtr getAppender(const LogString &name) const override
Get an appender by name.
AppenderAttachableImpl()
Create new instance.
bool isAttached(const AppenderPtr appender) const override
Returns true if the specified appender is in the list of attached appenders, false otherwise.
bool replaceAppender(const AppenderPtr &oldAppender, const AppenderPtr &newAppender) LOG4CXX_16_VIRTUAL_SPECIFIER
Replace oldAppender with newAppender.
void replaceAppenders(const AppenderList &newList) LOG4CXX_16_VIRTUAL_SPECIFIER
Replace any previously added appenders with newList.
int appendLoopOnAppenders(const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
Call the doAppend method on all attached appenders.
AppenderList getAllAppenders() const override
Get all previously added appenders as an Enumeration.
Definition pool.h:33
This Interface is for attaching Appenders to objects.
Definition appenderattachable.h:33
Definition propertysetter.h:27
LOG4CXX_PTR_DEF(Object)
Definition appender.h:30
std::shared_ptr< LoggingEvent > LoggingEventPtr
Definition appender.h:32
std::basic_string< logchar > LogString
Definition logstring.h:60
std::shared_ptr< Appender > AppenderPtr
Definition basicconfigurator.h:29
#define LOG4CXX_CAST_ENTRY(Interface)
Definition object.h:158
#define DECLARE_ABSTRACT_LOG4CXX_OBJECT(object)
Definition object.h:39
#define END_LOG4CXX_CAST_MAP()
Definition object.h:152
#define BEGIN_LOG4CXX_CAST_MAP()
Definition object.h:146