<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>ReflectionRewritePolicy xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/rewrite/ReflectionRewritePolicy.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *</em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j.rewrite;
<a name="18" href="#18">18</a>  
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">import</strong> java.beans.Introspector;
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.beans.PropertyDescriptor;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Logger;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.LogLog;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggingEvent;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment">/**</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * This policy rewrites events by evaluating any</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * JavaBean properties on the message object and adding them</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * to the event properties.  If the message object has a</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * message property, the value of that property will be</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * used as the message for the rewritten event and will</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * not be added to the event properties.  Values from the</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * JavaBean properties will replace any existing property</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * with the same name.</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> *</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * The combination of the RewriteAppender and this policy</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * performs the same actions as the ReflectionFilter from log4j 1.3. </em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> */</em>
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/rewrite/ReflectionRewritePolicy.html">ReflectionRewritePolicy</a> implements <a href="../../../../org/apache/log4j/rewrite/RewritePolicy.html">RewritePolicy</a> {
<a name="42" href="#42">42</a>      <em class="jxr_javadoccomment">/**</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     */</em>
<a name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> rewrite(<strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> source) {
<a name="46" href="#46">46</a>          Object msg = source.getMessage();
<a name="47" href="#47">47</a>          <strong class="jxr_keyword">if</strong> (!(msg instanceof String)) {
<a name="48" href="#48">48</a>              Object newMsg = msg;
<a name="49" href="#49">49</a>              Map rewriteProps = <strong class="jxr_keyword">new</strong> HashMap(source.getProperties());
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>              <strong class="jxr_keyword">try</strong> {
<a name="52" href="#52">52</a>                  PropertyDescriptor[] props = Introspector.getBeanInfo(
<a name="53" href="#53">53</a>                          msg.getClass(), Object.<strong class="jxr_keyword">class</strong>).getPropertyDescriptors();
<a name="54" href="#54">54</a>                  <strong class="jxr_keyword">if</strong> (props.length &gt; 0) {
<a name="55" href="#55">55</a>                      <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i=0;i&lt;props.length;i++) {
<a name="56" href="#56">56</a>                          <strong class="jxr_keyword">try</strong> {
<a name="57" href="#57">57</a>                              Object propertyValue =
<a name="58" href="#58">58</a>                                  props[i].getReadMethod().invoke(msg,
<a name="59" href="#59">59</a>                                          (Object[]) <strong class="jxr_keyword">null</strong>);
<a name="60" href="#60">60</a>                              <strong class="jxr_keyword">if</strong> (<span class="jxr_string">"message"</span>.equalsIgnoreCase(props[i].getName())) {
<a name="61" href="#61">61</a>                                  newMsg = propertyValue;
<a name="62" href="#62">62</a>                              } <strong class="jxr_keyword">else</strong> {
<a name="63" href="#63">63</a>                                  rewriteProps.put(props[i].getName(), propertyValue);
<a name="64" href="#64">64</a>                              }
<a name="65" href="#65">65</a>                          } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="66" href="#66">66</a>                              LogLog.warn(<span class="jxr_string">"Unable to evaluate property "</span> +
<a name="67" href="#67">67</a>                                      props[i].getName(), e);
<a name="68" href="#68">68</a>                          }
<a name="69" href="#69">69</a>                      }
<a name="70" href="#70">70</a>                      <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a>(
<a name="71" href="#71">71</a>                              source.getFQNOfLoggerClass(),
<a name="72" href="#72">72</a>                              source.getLogger() != <strong class="jxr_keyword">null</strong> ? source.getLogger(): Logger.getLogger(source.getLoggerName()),
<a name="73" href="#73">73</a>                              source.getTimeStamp(),
<a name="74" href="#74">74</a>                              source.getLevel(),
<a name="75" href="#75">75</a>                              newMsg,
<a name="76" href="#76">76</a>                              source.getThreadName(),
<a name="77" href="#77">77</a>                              source.getThrowableInformation(),
<a name="78" href="#78">78</a>                              source.getNDC(),
<a name="79" href="#79">79</a>                              source.getLocationInformation(),
<a name="80" href="#80">80</a>                              rewriteProps);
<a name="81" href="#81">81</a>                  }
<a name="82" href="#82">82</a>              } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="83" href="#83">83</a>                  LogLog.warn(<span class="jxr_string">"Unable to get property descriptors"</span>, e);
<a name="84" href="#84">84</a>              }
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>          }
<a name="87" href="#87">87</a>          <strong class="jxr_keyword">return</strong> source;
<a name="88" href="#88">88</a>      }
<a name="89" href="#89">89</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

