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 }