Apache log4cxx  Version 0.12.1
filterbasedtriggeringpolicy.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 #if !defined(_LOG4CXX_ROLLING_FILTER_BASED_TRIGGERING_POLICY_H)
19 #define _LOG4CXX_ROLLING_FILTER_BASED_TRIGGERING_POLICY_H
20 
22 #include <log4cxx/spi/filter.h>
23 
24 namespace log4cxx
25 {
26 
27 class File;
28 
29 namespace helpers
30 {
31 class Pool;
32 }
33 
34 
35 namespace rolling
36 {
37 
38 
48 class LOG4CXX_EXPORT FilterBasedTriggeringPolicy : public TriggeringPolicy
49 {
50 
56 
57 
60  log4cxx::spi::FilterPtr headFilter;
61 
65  log4cxx::spi::FilterPtr tailFilter;
66 
67  public:
72  virtual ~FilterBasedTriggeringPolicy();
73 
85  virtual bool isTriggeringEvent(
86  Appender* appender,
87  const log4cxx::spi::LoggingEventPtr& event,
88  const LogString& filename,
89  size_t fileLength);
90 
95  void addFilter(const log4cxx::spi::FilterPtr& newFilter);
96 
101  void clearFilters();
102 
107  log4cxx::spi::FilterPtr& getFilter();
108 
112  void activateOptions(log4cxx::helpers::Pool&);
113 
114  void setOption(const LogString& option, const LogString& value);
115 };
116 
118 
119 }
120 }
121 
122 #endif
#define LOG4CXX_CAST_ENTRY(Interface)
Definition: object.h:148
FilterBasedTriggeringPolicy determines if rolling should be triggered by evaluating the current messa...
Definition: filterbasedtriggeringpolicy.h:48
#define END_LOG4CXX_CAST_MAP()
Definition: object.h:142
LOG4CXX_PTR_DEF(AppenderAttachableImpl)
A TriggeringPolicy controls the conditions under which rollover occurs.
Definition: triggeringpolicy.h:44
std::shared_ptr< LoggingEvent > LoggingEventPtr
Definition: appender.h:37
#define BEGIN_LOG4CXX_CAST_MAP()
Definition: object.h:136
#define DECLARE_LOG4CXX_OBJECT(object)
Definition: object.h:39
Implement this interface for your own strategies for outputting log statements.
Definition: appender.h:55
Definition: pool.h:32
#define LOG4CXX_CAST_ENTRY_CHAIN(Interface)
Definition: object.h:154
std::shared_ptr< Filter > FilterPtr
Definition: appender.h:40
Definition: appender.h:32
std::basic_string< logchar > LogString
Definition: logstring.h:66