LocationInfo ClassApache log4net™ SDK Documentation
The internal representation of caller location information.
Inheritance Hierarchy


Namespace: log4net.Core
Assembly: log4net (in log4net.dll) Version: 4.0

public class LocationInfo

The LocationInfo type exposes the following members.


Public methodLocationInfo(Type)
Public methodLocationInfo(String, String, String, String)

Public propertyClassName
Gets the fully qualified class name of the caller making the logging request.
Public propertyFileName
Gets the file name of the caller.
Public propertyFullInfo
Gets all available caller information
Public propertyLineNumber
Gets the line number of the caller.
Public propertyMethodName
Gets the method name of the caller.
Public propertyStackFrames
Gets the stack frames from the stack trace of the caller making the log request

Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Protected methodFinalize
Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodToString
Returns a String that represents the current Object.
(Inherited from Object.)

This class uses the System.Diagnostics.StackTrace class to generate a call stack. The caller's information is then extracted from this stack.

The System.Diagnostics.StackTrace class is not supported on the .NET Compact Framework 1.0 therefore caller location information is not available on that framework.

The System.Diagnostics.StackTrace class has this to say about Release builds:

"StackTrace information will be most informative with Debug build configurations. By default, Debug builds include debug symbols, while Release builds do not. The debug symbols contain most of the file, method name, line number, and column information used in constructing StackFrame and StackTrace objects. StackTrace might not report as many method calls as expected, due to code transformations that occur during optimization."

This means that in a Release build the caller information may be incomplete or may not exist at all! Therefore caller location information cannot be relied upon in a Release build.

See Also