From 4617ef5a00a1b456ebc57e1df1e50193f416c762 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 23 Jul 2020 02:26:45 +0200 Subject: [PATCH] basic implementation --- ExtremelySimpleLogger.sln | 6 ++++ .../ExtremelySimpleLogger.csproj | 1 + ExtremelySimpleLogger/Logger.cs | 28 ++++++++++++++++++- 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/ExtremelySimpleLogger.sln b/ExtremelySimpleLogger.sln index f8bd5da..f654d86 100644 --- a/ExtremelySimpleLogger.sln +++ b/ExtremelySimpleLogger.sln @@ -2,6 +2,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExtremelySimpleLogger", "ExtremelySimpleLogger\ExtremelySimpleLogger.csproj", "{D323F21E-8DE7-46DB-8E34-E4739876F6CB}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample", "Sample\Sample.csproj", "{50C64522-C1E8-495D-9E9B-3B6A21551D3B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -12,5 +14,9 @@ Global {D323F21E-8DE7-46DB-8E34-E4739876F6CB}.Debug|Any CPU.Build.0 = Debug|Any CPU {D323F21E-8DE7-46DB-8E34-E4739876F6CB}.Release|Any CPU.ActiveCfg = Release|Any CPU {D323F21E-8DE7-46DB-8E34-E4739876F6CB}.Release|Any CPU.Build.0 = Release|Any CPU + {50C64522-C1E8-495D-9E9B-3B6A21551D3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50C64522-C1E8-495D-9E9B-3B6A21551D3B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50C64522-C1E8-495D-9E9B-3B6A21551D3B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50C64522-C1E8-495D-9E9B-3B6A21551D3B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/ExtremelySimpleLogger/ExtremelySimpleLogger.csproj b/ExtremelySimpleLogger/ExtremelySimpleLogger.csproj index 2756020..8a4ad62 100644 --- a/ExtremelySimpleLogger/ExtremelySimpleLogger.csproj +++ b/ExtremelySimpleLogger/ExtremelySimpleLogger.csproj @@ -2,6 +2,7 @@ netstandard2.0 + true diff --git a/ExtremelySimpleLogger/Logger.cs b/ExtremelySimpleLogger/Logger.cs index 0015371..607704b 100644 --- a/ExtremelySimpleLogger/Logger.cs +++ b/ExtremelySimpleLogger/Logger.cs @@ -1,7 +1,33 @@ +using System; +using System.Collections.Generic; + namespace ExtremelySimpleLogger { public class Logger { - + public List Sinks { get; set; } = new List(); + public LogLevel MinimumLevel { get; set; } = LogLevel.Trace; + public bool IsEnabled { get; set; } = true; + public string Name { get; set; } + + public Logger(string name = "") { + this.Name = name; + } + + public void Log(LogLevel level, object message, Exception e = null) { + if (!this.IsEnabled || level < this.MinimumLevel) + return; + foreach (var sink in this.Sinks) { + if (level >= sink.MinimumLevel) + sink.Log(this, level, message, e); + } + } + + public void Trace(object message) => this.Log(LogLevel.Trace, message); + public void Debug(object message) => this.Log(LogLevel.Debug, message); + public void Info(object message) => this.Log(LogLevel.Info, message); + public void Warn(object message, Exception e = null) => this.Log(LogLevel.Warn, message, e); + public void Error(object message, Exception e = null) => this.Log(LogLevel.Error, message, e); + public void Fatal(object message, Exception e = null) => this.Log(LogLevel.Fatal, message, e); } } \ No newline at end of file