source: pacpusframework/branches/2.0-beta1/3rd/apache-log4cxx/include/log4cxx/filter/locationinfofilter.h@ 89

Last change on this file since 89 was 89, checked in by morasjul, 11 years ago

PACPUS 2.0 Beta deployed in new branch

Major changes:
-Add communication interface between components
-Add examples for communications interface (TestComponents)
-Move to Qt5 support

  • Property svn:executable set to *
File size: 3.0 KB
Line 
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#ifndef _LOG4CXX_FILTER_LOCATIONINFOFILTER_H
18#define _LOG4CXX_FILTER_LOCATIONINFOFILTER_H
19
20#include <log4cxx/spi/filter.h>
21
22namespace log4cxx
23{
24 namespace rule
25 {
26 class ExpressionRule;
27 class Rule;
28 typedef helpers::ObjectPtrT < Rule > RulePtr;
29 typedef helpers::ObjectPtrT < ExpressionRule > ExpressionRulePtr;
30 }
31
32 namespace filter
33 {
34/**
35 * Location information is usually specified at the appender level - all events associated
36 * with an appender either create and parse stack traces or they do not. This is
37 * an expensive operation and in some cases not needed for all events associated with
38 * an appender.
39 *
40 * This filter creates event-level location information only if the provided expression evaluates to true.
41 *
42 * For information on expression syntax, see org.apache.log4j.rule.ExpressionRule
43 *
44 *
45 */
46 class LOG4CXX_EXPORT LocationInfoFilter:public log4cxx::spi::Filter
47 {
48 bool convertInFixToPostFix;
49 LogString expression;
50 log4cxx::rule::RulePtr expressionRule;
51 //HACK: Category is the last of the internal layers - pass this in as the class name
52 //in order for parsing to work correctly
53 LogString className;
54
55 public:
56 DECLARE_LOG4CXX_OBJECT(LocationInfoFilter)
57 BEGIN_LOG4CXX_CAST_MAP()
58 LOG4CXX_CAST_ENTRY(log4cxx::spi::Filter)
59 END_LOG4CXX_CAST_MAP()
60
61 LocationInfoFilter();
62
63 void activateOptions(log4cxx::helpers::Pool &);
64
65 void setExpression(const LogString & expression);
66
67 LogString getExpression() const;
68
69 void setConvertInFixToPostFix(bool convertInFixToPostFix);
70
71 bool getConvertInFixToPostFix() const;
72
73 /**
74 * If this event does not already contain location information,
75 * evaluate the event against the expression.
76 *
77 * If the expression evaluates to true, generate a LocationInfo instance
78 * by creating an exception and set this LocationInfo on the event.
79 *
80 * Returns {@link log4cxx::spi::Filter#NEUTRAL}
81 */
82 FilterDecision decide(const spi::LoggingEventPtr & event) const;
83
84 };
85 }
86}
87#endif
Note: See TracBrowser for help on using the repository browser.