Apache Log4cxx  Version 1.6.0
Loading...
Searching...
No Matches
appenderskeleton.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_APPENDER_SKELETON_H
19#define _LOG4CXX_APPENDER_SKELETON_H
20
21#include <log4cxx/appender.h>
22#include <log4cxx/layout.h>
24#include <log4cxx/spi/filter.h>
27#include <log4cxx/level.h>
28
29namespace LOG4CXX_NS
30{
31
38class LOG4CXX_EXPORT AppenderSkeleton :
39 public virtual Appender,
40 public virtual helpers::Object
41{
42 protected:
43 LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(AppenderSkeletonPrivate, m_priv)
44 AppenderSkeleton(LOG4CXX_PRIVATE_PTR(AppenderSkeletonPrivate) priv);
45
51 virtual void append(const spi::LoggingEventPtr& event, helpers::Pool& p) = 0;
52
58 void doAppendImpl(const spi::LoggingEventPtr& event, helpers::Pool& pool);
59
63 bool isAccepted(const spi::LoggingEventPtr& event) const;
64
65 public:
70 LOG4CXX_CAST_ENTRY(spi::OptionHandler)
72
75 virtual ~AppenderSkeleton();
76
81 void finalize();
82
88 void activateOptions(helpers::Pool& /* pool */) override {}
89
97 void setOption(const LogString& option, const LogString& value) override;
98
102 void addFilter(const spi::FilterPtr newFilter) override;
103
104 public:
108 void clearFilters() override;
109
115
119 spi::FilterPtr getFilter() const override;
120
127
131 LayoutPtr getLayout() const override;
132
133
137 LogString getName() const override;
138
143 const LevelPtr getThreshold() const;
144
150 bool isAsSevereAsThreshold(const LevelPtr& level) const;
151
152
159 void doAppend(const spi::LoggingEventPtr& event, helpers::Pool& pool) override;
160
165
170 void setLayout(const LayoutPtr layout1) override;
171
175 void setName(const LogString& name1) override;
176
177
186 void setThreshold(const LevelPtr& threshold);
187
188}; // class AppenderSkeleton
189} // namespace log4cxx
190
191#endif //_LOG4CXX_APPENDER_SKELETON_H
LogString getName() const override
Returns the name of this Appender.
void setErrorHandler(const spi::ErrorHandlerPtr eh)
Set the ErrorHandler for this Appender.
spi::FilterPtr getFilter() const override
Returns the head Filter.
virtual void append(const spi::LoggingEventPtr &event, helpers::Pool &p)=0
Subclasses of AppenderSkeleton must implement this method to perform actual logging.
void doAppend(const spi::LoggingEventPtr &event, helpers::Pool &pool) override
Call AppenderSkeleton::doAppendImpl after acquiring a lock that prevents other threads from concurren...
const spi::FilterPtr getFirstFilter() const
Return the first filter in the filter chain for this Appender.
LayoutPtr getLayout() const override
Returns the layout of this appender.
void activateOptions(helpers::Pool &) override
Activate the options that were previously set with calls to option setters.
Definition appenderskeleton.h:88
void setOption(const LogString &option, const LogString &value) override
Set option to value.
const LevelPtr getThreshold() const
Returns this appenders threshold level.
void setName(const LogString &name1) override
Set the name of this Appender.
void setLayout(const LayoutPtr layout1) override
Set the layout for this appender.
void setThreshold(const LevelPtr &threshold)
Set the threshold level.
void addFilter(const spi::FilterPtr newFilter) override
Add a filter to end of the filter list.
bool isAsSevereAsThreshold(const LevelPtr &level) const
Check whether the message level is below the appender's threshold.
bool isAccepted(const spi::LoggingEventPtr &event) const
Does no attached filter deny event or does an attached filter accept event?
void clearFilters() override
Clear the filters chain.
AppenderSkeleton(LOG4CXX_PRIVATE_PTR(AppenderSkeletonPrivate) priv)
const spi::ErrorHandlerPtr getErrorHandler() const
Return the currently set spi::ErrorHandler for this Appender.
void doAppendImpl(const spi::LoggingEventPtr &event, helpers::Pool &pool)
Compare event level against the appender threshold and check that event is accepted.
void finalize()
Finalize this appender by calling the derived class' close method.
Implement this interface for your own strategies for outputting log statements.
Definition appender.h:51
base class for java-like objects.
Definition object.h:106
Definition pool.h:33
Definition propertysetter.h:27
Definition appender.h:30
std::shared_ptr< ErrorHandler > ErrorHandlerPtr
Definition appender.h:38
std::shared_ptr< Filter > FilterPtr
Definition appender.h:35
std::shared_ptr< LoggingEvent > LoggingEventPtr
Definition appender.h:32
std::basic_string< logchar > LogString
Definition logstring.h:60
std::shared_ptr< Level > LevelPtr
Definition optionconverter.h:28
std::shared_ptr< Layout > LayoutPtr
Definition appender.h:42
#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