Assembly: log4net (in log4net.dll) Version: 220.127.116.11-.NET 4.0
[SerializableAttribute] public class LocationInfo
<SerializableAttribute> Public Class LocationInfo
[SerializableAttribute] public ref class LocationInfo
[<SerializableAttribute>] type LocationInfo = class end
Thetype exposes the following members.
|LocationInfo(String, String, String, String)|
Gets the fully qualified class name of the caller making the logging request.
Gets the file name of the caller.
Gets all available caller information
Gets the line number of the caller.
Gets the method name of the caller.
Gets the stack frames from the stack trace of the caller making the log request
Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.(Inherited from Object.)
Serves as a hash function for a particular type.(Inherited from Object.)
Gets the Type of the current instance.(Inherited from Object.)
Creates a shallow copy of 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.