public class LocationInfo
extends java.lang.Object
implements java.io.Serializable
Modifier and Type | Field and Description |
---|---|
(package private) java.lang.String |
className
Caller's fully qualified class name.
|
(package private) java.lang.String |
fileName
Caller's file name.
|
java.lang.String |
fullInfo
All available caller information, in the format
fully.qualified.classname.of.caller.methodName(Filename.java:line) |
private static java.lang.reflect.Method |
getClassNameMethod |
private static java.lang.reflect.Method |
getFileNameMethod |
private static java.lang.reflect.Method |
getLineNumberMethod |
private static java.lang.reflect.Method |
getMethodNameMethod |
private static java.lang.reflect.Method |
getStackTraceMethod |
(package private) static boolean |
inVisualAge |
(package private) java.lang.String |
lineNumber
Caller's line number.
|
(package private) java.lang.String |
methodName
Caller's method name.
|
static java.lang.String |
NA
When location information is not available the constant
NA is returned. |
static LocationInfo |
NA_LOCATION_INFO
NA_LOCATION_INFO is provided for compatibility with log4j 1.3.
|
private static java.io.PrintWriter |
pw |
(package private) static long |
serialVersionUID |
private static java.io.StringWriter |
sw |
Constructor and Description |
---|
LocationInfo(java.lang.String file,
java.lang.String classname,
java.lang.String method,
java.lang.String line)
Create new instance.
|
LocationInfo(java.lang.Throwable t,
java.lang.String fqnOfCallingClass)
Instantiate location information based on a Throwable.
|
Modifier and Type | Method and Description |
---|---|
private static void |
appendFragment(java.lang.StringBuffer buf,
java.lang.String fragment)
Appends a location fragment to a buffer to build the
full location info.
|
java.lang.String |
getClassName()
Return the fully qualified class name of the caller making the
logging request.
|
java.lang.String |
getFileName()
Return the file name of the caller.
|
java.lang.String |
getLineNumber()
Returns the line number of the caller.
|
java.lang.String |
getMethodName()
Returns the method name of the caller.
|
transient java.lang.String lineNumber
transient java.lang.String fileName
transient java.lang.String className
transient java.lang.String methodName
public java.lang.String fullInfo
fully.qualified.classname.of.caller.methodName(Filename.java:line)
private static java.io.StringWriter sw
private static java.io.PrintWriter pw
private static java.lang.reflect.Method getStackTraceMethod
private static java.lang.reflect.Method getClassNameMethod
private static java.lang.reflect.Method getMethodNameMethod
private static java.lang.reflect.Method getFileNameMethod
private static java.lang.reflect.Method getLineNumberMethod
public static final java.lang.String NA
NA
is returned. Current value of this string
constant is ?.static final long serialVersionUID
public static final LocationInfo NA_LOCATION_INFO
static boolean inVisualAge
public LocationInfo(java.lang.Throwable t, java.lang.String fqnOfCallingClass)
t
, to be in the format
java.lang.Throwable ... at org.apache.log4j.PatternLayout.format(PatternLayout.java:413) at org.apache.log4j.FileAppender.doAppend(FileAppender.java:183) at org.apache.log4j.Category.callAppenders(Category.java:131) at org.apache.log4j.Category.log(Category.java:512) at callers.fully.qualified.className.methodName(FileName.java:74) ...
However, we can also deal with JIT compilers that "lose" the location information, especially between the parentheses.
t
- throwable used to determine location, may be null.fqnOfCallingClass
- class name of first class considered part of
the logging framework. Location will be site that calls a method on this class.public LocationInfo(java.lang.String file, java.lang.String classname, java.lang.String method, java.lang.String line)
file
- source file nameclassname
- class namemethod
- methodline
- source line numberprivate static final void appendFragment(java.lang.StringBuffer buf, java.lang.String fragment)
buf
- StringBuffer to receive content.fragment
- fragment of location (class, method, file, line),
if null the value of NA will be appended.public java.lang.String getClassName()
public java.lang.String getFileName()
This information is not always available.
public java.lang.String getLineNumber()
This information is not always available.
public java.lang.String getMethodName()