Class LogValues
Helper methods for logging special variables.
Inheritance
Namespace: LaunchDarkly.Logging
Assembly: LaunchDarkly.Logging.dll
Syntax
public static class LogValues : Object
Methods
Defer(Func<String>)
Converts any function that returns a string into an object for calling it lazily.
Declaration
public static object Defer(Func<string> stringProvider)
Parameters
Type | Name | Description |
---|---|---|
System.Func<System.String> | stringProvider | a function that returns a string |
Returns
Type | Description |
---|---|
System.Object | an object that calls that function if |
Remarks
Sometimes log messages may include a computed value that has enough computational
overhead that you would prefer not to compute it unless it really will be logged.
The Logger methods that take parameters of type object
do not
call ToString()
to convert those parameters to strings immediately; if logging
of this message has been disabled by a Level(ILogAdapter, LogLevel)
filter, or some other filtering mechanism defined by the log adapter, or if all
logging is disabled because the destination is None, then
ToString()
is not called. The object returned by Defer
simply delegates
its ToString()
method to the function you provide.
Examples
// Here, ComputeJSONData is only called if debug-level logging is enabled logger.Debug("The JSON data is: {0}", () => ComputeJSONData());
ExceptionSummary(Exception)
Returns an object that lazily constructs a basic exception description.
Declaration
public static object ExceptionSummary(Exception e)
Parameters
Type | Name | Description |
---|---|---|
System.Exception | e | an exception |
Returns
Type | Description |
---|---|
System.Object | an object whose |
Remarks
Calling ToString()
on the object returned by this method returns a string
that includes the name of the exception class, its Message (if any), and the
same properties for its InnerException (if any). This string is not constructed
unless ToString()
is called, so writing exceptions to the log in this way
incurs very little overhead if logging is not enabled for the specified log level.
Examples
try { ... } catch (Exception e) { logger.Debug("Caught: {0} {1}", LogValues.ExceptionSummary(e), LogValues.ExceptionTrace(e)); }
ExceptionTrace(Exception)
Returns an object that lazily constructs an exception stacktrace.
Declaration
public static object ExceptionTrace(Exception e)
Parameters
Type | Name | Description |
---|---|---|
System.Exception | e | an exception |
Returns
Type | Description |
---|---|
System.Object | an object whose |
Remarks
Calling ToString()
on the object returned by this method returns the
exception's stacktrace as a string. This string is not constructed unless
ToString()
is called, so writing exceptions to the log in this way incurs
very little overhead if logging is not enabled for the specified log level.
Examples
try { ... } catch (Exception e) { logger.Debug("Caught: {0} {1}", LogValues.ExceptionSummary(e), LogValues.ExceptionTrace(e)); }