View Javadoc

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  package org.apache.log4j.chainsaw;
18  
19  import org.apache.log4j.Priority;
20  import org.apache.log4j.spi.LoggingEvent;
21  
22  /**
23   * Represents the details of a logging event. It is intended to overcome the
24   * problem that a LoggingEvent cannot be constructed with purely fake data.
25   *
26   * @author <a href="mailto:oliver@puppycrawl.com">Oliver Burn</a>
27   * @version 1.0
28   */
29  class EventDetails {
30  
31      /** the time of the event **/
32      private final long mTimeStamp;
33      /** the priority of the event **/
34      private final Priority mPriority;
35      /** the category of the event **/
36      private final String mCategoryName;
37      /** the NDC for the event **/
38      private final String mNDC;
39      /** the thread for the event **/
40      private final String mThreadName;
41      /** the msg for the event **/
42      private final String mMessage;
43      /** the throwable details the event **/
44      private final String[] mThrowableStrRep;
45      /** the location details for the event **/
46      private final String mLocationDetails;
47  
48      /**
49       * Creates a new <code>EventDetails</code> instance.
50       * @param aTimeStamp a <code>long</code> value
51       * @param aPriority a <code>Priority</code> value
52       * @param aCategoryName a <code>String</code> value
53       * @param aNDC a <code>String</code> value
54       * @param aThreadName a <code>String</code> value
55       * @param aMessage a <code>String</code> value
56       * @param aThrowableStrRep a <code>String[]</code> value
57       * @param aLocationDetails a <code>String</code> value
58       */
59      EventDetails(long aTimeStamp,
60                   Priority aPriority,
61                   String aCategoryName,
62                   String aNDC,
63                   String aThreadName,
64                   String aMessage,
65                   String[] aThrowableStrRep,
66                   String aLocationDetails)
67      {
68          mTimeStamp = aTimeStamp;
69          mPriority = aPriority;
70          mCategoryName = aCategoryName;
71          mNDC = aNDC;
72          mThreadName = aThreadName;
73          mMessage = aMessage;
74          mThrowableStrRep = aThrowableStrRep;
75          mLocationDetails = aLocationDetails;
76      }
77  
78      /**
79       * Creates a new <code>EventDetails</code> instance.
80       *
81       * @param aEvent a <code>LoggingEvent</code> value
82       */
83      EventDetails(LoggingEvent aEvent) {
84  
85          this(aEvent.timeStamp,
86               aEvent.getLevel(),
87               aEvent.getLoggerName(),
88               aEvent.getNDC(),
89               aEvent.getThreadName(),
90               aEvent.getRenderedMessage(),
91               aEvent.getThrowableStrRep(),
92               (aEvent.getLocationInformation() == null)
93               ? null : aEvent.getLocationInformation().fullInfo);
94      }
95  
96      /** @see #mTimeStamp **/
97      long getTimeStamp() {
98          return mTimeStamp;
99      }
100 
101     /** @see #mPriority **/
102     Priority getPriority() {
103         return mPriority;
104     }
105 
106     /** @see #mCategoryName **/
107     String getCategoryName() {
108         return mCategoryName;
109     }
110 
111     /** @see #mNDC **/
112     String getNDC() {
113         return mNDC;
114     }
115 
116     /** @see #mThreadName **/
117     String getThreadName() {
118         return mThreadName;
119     }
120 
121     /** @see #mMessage **/
122     String getMessage() {
123         return mMessage;
124     }
125 
126     /** @see #mLocationDetails **/
127     String getLocationDetails(){
128         return mLocationDetails;
129     }
130 
131     /** @see #mThrowableStrRep **/
132     String[] getThrowableStrRep() {
133         return mThrowableStrRep;
134     }
135 }