Use сases

Adding context prefixes

ILog log = new ConsoleLog(new ConsoleLogSettings
    {
        ColorsEnabled = true,
        OutputTemplate = OutputTemplate.Default
    });
                  
log = log.WithContextualPrefix();
   
using (new ContextualLogPrefix("op-1"))
{
    log.Info("Message 1!");
    
    using (new ContextualLogPrefix("op-2"))
    {
        log.Info("Message 2!");
    }               
    
    log.Info("Message 3!");
}
ConsoleLog.Flush();

Messages output format configuration

var log1 = new FileLog( new FileLogSettings
{
    FilePath = "log.txt",
    OutputTemplate = OutputTemplate.Default
});

var log2 = new FileLog(new FileLogSettings
{
    FilePath = "log.txt",
    OutputTemplate =
        OutputTemplate.Parse("{Timestamp:hh:mm:ss} <{Message}>{NewLine}")
});

log1.Info("One."); log2.Info("Two."); log1.Info("Three."); log2.Info("Four.");
FileLog.FlushAll();

Selective logging

var log = new FileLog( new FileLogSettings
{
    FilePath = "log.txt",
    EnabledLogLevels = new[] {
    LogLevel.Warn, LogLevel.Error },
});
FileLog.FlushAll();

Synchronous logging to file and console

ILog log1 = new FileLog(
    new FileLogSettings
    {
        FilePath = "l.log"
    });
            
ILog log2 = new ConsoleLog();
            
CompositeLog composite = new CompositeLog(log1, log2);
            
composite.Info("test");
            
ConsoleLog.Flush();
FileLog.FlushAll();

Rolling Strategy

var log = new FileLog(new FileLogSettings
{
    FilePath = "log.txt",
    RollingStrategy = new FileLogSettings.RollingStrategyOptions
    {
        MaxFiles = 3,
        MaxSize = 50.Megabytes(),
        Period = 2.Days(),
        Type = RollingStrategyType.Hybrid
    }
});

Color-marked console messages

var log = new ConsoleLog(new ConsoleLogSettings
{
    ColorMapping = new Dictionary<LogLevel, ConsoleColor>
    {
        {LogLevel.Debug, ConsoleColor.Red},
        {LogLevel.Info, ConsoleColor.Cyan},
        {LogLevel.Warn, ConsoleColor.DarkYellow},
        {LogLevel.Error, ConsoleColor.Green},
        {LogLevel.Fatal, ConsoleColor.Magenta},
    }
});
    
log.Debug("Red");
log.Info("Cyan");
log.Warn("DarkYellow");
log.Error("Green");
log.Fatal("Magenta");
ConsoleLog.Flush();

Last updated