Skip to content

mkloubert/Diagnostics.NET

Repository files navigation

Diagnostics.NET

Classes for debug and diagnostic operations written in C#.

Branches

Name Targets on
master (current) C# 4.0
CSharp5 C# 5.0, .NET 4.5
NetCore5 C# 6.0, .NET Core 5
Portable8 C# 4.0, .NET 4.5, Silverlight 5, Windows 8, Windows Phone 8.1 + 8 (Silverlight)

Loggers

AggregateLogger

Executes a list of loggers.

var subLogger1 = new NullLogger();

var subLogger2 = new EventLogger();
subLogger2.MessageReceived += (sender, e) =>
    {
        //TODO
    };


var logger = new AggregateLogger();
logger.AddLogger(subLogger1);
logger.AddLogger(subLogger2);

AsyncLogger

Wraps a logger and runs each log operation of it in background.

DelegateLogger

Uses a delegate to handle a log operation.

static class LogHandler {
    public static void MyLogAction(DelegateLogger logger, ILogMessage msg, ref bool success) {
        //TODO
    }
}

var logger = new DelegateLogger(LogHandler.MyLogAction);

EventLogger

Fires an event when a log operation is made.

var logger = new EventLogger();
logger.MessageReceived += (sender, e) =>
    {
        // e.Message contains the log message
    };

FallbackLogger

Wraps a main logger and uses an alternate logger if that main logger fails.

// the main logger
var mainLogger = new EventLogger();
mainLogger.MessageReceived += (sender, e) =>
    {
        // lets make this logger fail
        throw new NotImplementedException();
    };

// the fallback logger
var alternateLogger = new TextLogger(Console.Out);

var logger = new FallbackLogger(mainLogger,
                                alternateLogger);

NullLogger

A logger that does nothing.

SynchronizedLogger

A thread safe logger.

TextLogger

Uses a TextWriter or a Stream instance to write a log message.

// write to console
var consoleLogger = new TextLogger(Console.Out);

// write to file
var fileLogger = new TextLogger(new FileStream("./logfile.txt"));

About

Classes for debug and diagnostic operations written in C#.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages