Apache Log4cxx  Version 1.4.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
104 private:
105 LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(priv_data, m_priv)
106
109};
110
112
113}
114}
115
116
117#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.
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.
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