Class Logs
Factory methods for the basic logging implementations in this package.
Inheritance
Namespace: LaunchDarkly.Logging
Assembly: LaunchDarkly.Logging.dll
Syntax
public static class Logs : Object
Remarks
See ILogAdapter for more about how LaunchDarkly.Logging works with
different implementations of logging. The methods and properties in Logs provide
easy access to basic behaviors like logging to the console or to a file, or capturing log
output for testing; if you need to direct the log output to another logging framework that
your application is using, you will use an ILogAdapter implementation
specific to that framework instead.
Properties
Default
A default implementation that writes to the standard error stream at Info level.
Declaration
public static ILogAdapter Default { get; }
Property Value
| Type | Description |
|---|---|
| ILogAdapter |
Remarks
This simply calls ToConsole, and then uses Level(ILogAdapter, LogLevel)
to set the minimum level to Info (that is, it suppresses Debug logging).
None
A stub that generates no log output.
Declaration
public static ILogAdapter None { get; }
Property Value
| Type | Description |
|---|---|
| ILogAdapter |
ToConsole
A simple logging implementation that writes to the standard error stream.
Declaration
public static SimpleLogging ToConsole { get; }
Property Value
| Type | Description |
|---|---|
| SimpleLogging |
Remarks
This is equivalent to Logs.ToWriter(Console.Error).
By default, all logging is enabled including Debug level. To filter by level, use
Level(ILogAdapter, LogLevel). You can also use
SimpleLogging methods for additional configuration.
Methods
Capture()
A logging implementation that captures log messages in memory.
Declaration
public static LogCapture Capture()
Returns
| Type | Description |
|---|---|
| LogCapture | a LogCapture instance |
CoreLogging(ILoggerFactory)
A logging implementation that delegates to the .NET Core logging framework.
Declaration
public static ILogAdapter CoreLogging(ILoggerFactory loggerFactory)
Parameters
| Type | Name | Description |
|---|---|---|
| Microsoft.Extensions.Logging.ILoggerFactory | loggerFactory | the factory object for .NET Core logging |
Returns
| Type | Description |
|---|---|
| ILogAdapter | a logging adapter |
Remarks
This method is only available when your target framework is .NET Core or .NET 6.0+. It causes
the LaunchDarkly.Logging APIs to delegate to the Microsoft.Extensions.Logging
framework. The ILoggingFactory is the main configuration object for
Microsoft.Extensions.Logging; application code can construct it programmatically,
or can obtain it by dependency injection. For more information, see
Logging
in .NET Core and ASP.NET Core.
If you want to use Microsoft.Extensions.Logging on a different platform, such as
.NET Framework or a mobile OS, use the separate package
LaunchDarkly.Logging.Microsoft.
The adapter is not built into LaunchDarkly.Logging on those platforms, to avoid
bringing in the Microsoft.Extensions.Logging package as a dependency that may not
be wanted.
The .NET Core logging framework has its own mechanisms for filtering log output by level or other criteria. If you add a level filter with Level(ILogAdapter, LogLevel), it will filter out messages below that level before they reach the .NET Core logger.
ToMethod(Action<String>)
A simple logging implementation that calls a method or lambda that you specify for each line of output.
Declaration
public static SimpleLogging ToMethod(Action<string> writeLineMethod)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Action<System.String> | writeLineMethod | a method or lambda that takes a line of text as a parameter |
Returns
| Type | Description |
|---|---|
| SimpleLogging | a configurable logging adapter |
Remarks
Each line is preformatted to include the logger name, the log level, and a timestamp (unless you disable timestamps with DateFormat(String)), in the same format used by ToConsole.
By default, all logging is enabled including Debug level. To filter by level, use
Level(ILogAdapter, LogLevel). You can also use
SimpleLogging methods for additional configuration.
Examples
// A silly example that just writes lines to the console, but with a "HEY!" prefix. var logAdapter = Logs.ToMethod(line => { Console.WriteLine("HEY! " + line); });
ToMultiple(ILogAdapter[])
A logging implementation that delegates to any number of destinations.
Declaration
public static ILogAdapter ToMultiple(params ILogAdapter[] logAdapters)
Parameters
| Type | Name | Description |
|---|---|---|
| ILogAdapter[] | logAdapters |
Returns
| Type | Description |
|---|---|
| ILogAdapter | an ILogAdapter |
Examples
// Send log output both to Console.Error and a file var fileWriter = new StreamWriter("output.log"); var logAdapter = MultiLog.Adapter( SimpleLog.Adapter, // writes to Console.Error
ToWriter(TextWriter)
A simple logging implementation that writes to any TextWriter.
Declaration
public static SimpleLogging ToWriter(TextWriter stream)
Parameters
| Type | Name | Description |
|---|---|---|
| System.IO.TextWriter | stream | the destination for output |
Returns
| Type | Description |
|---|---|
| SimpleLogging | a configurable logging adapter |
Remarks
This could be a built-in writer such as Console.Out, or a file.
By default, all logging is enabled including Debug level. To filter by level, use
Level(ILogAdapter, LogLevel). You can also use
SimpleLogging methods for additional configuration.