Apache Log4cxx  Version 2.0.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:
49
53 LOG4CXX_CAST_ENTRY(spi::AppenderAttachable)
55
56 // Methods
60 void addAppender(const AppenderPtr newAppender) override;
61
65 int appendLoopOnAppenders(const spi::LoggingEventPtr& event);
66
70 AppenderList getAllAppenders() const override;
71
75 AppenderPtr getAppender(const LogString& name) const override;
76
81 bool isAttached(const AppenderPtr appender) const override;
82
86 void removeAllAppenders() override;
87
91 void removeAppender(const AppenderPtr appender) override;
92
97 void removeAppender(const LogString& name) override;
98
103 bool replaceAppender(const AppenderPtr& oldAppender, const AppenderPtr& newAppender) override;
104
108 void replaceAppenders(const AppenderList& newList) override;
109
110 private:
111 LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(priv_data, m_priv)
112
115};
116
118
119}
120}
121
122
123#endif //_LOG4CXX_HELPERS_APPENDER_ATTACHABLE_IMPL_H
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.
int appendLoopOnAppenders(const spi::LoggingEventPtr &event)
Send event to all attached appenders.
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) override
Replace oldAppender with newAppender.
void replaceAppenders(const AppenderList &newList) override
Replace any previously added appenders with newList.
AppenderList getAllAppenders() const override
Get all previously added appenders as an Enumeration.
This Interface is for attaching Appenders to objects.
Definition appenderattachable.h:33
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:51
std::shared_ptr< Appender > AppenderPtr
Definition basicconfigurator.h:29
#define LOG4CXX_CAST_ENTRY(Interface)
Definition object.h:154
#define DECLARE_ABSTRACT_LOG4CXX_OBJECT(object)
Definition object.h:37
#define END_LOG4CXX_CAST_MAP()
Definition object.h:148
#define BEGIN_LOG4CXX_CAST_MAP()
Definition object.h:142