diff --git a/ExtremelySimpleLogger/ConsoleSink.cs b/ExtremelySimpleLogger/ConsoleSink.cs
index 4b9753f..35d5e3e 100644
--- a/ExtremelySimpleLogger/ConsoleSink.cs
+++ b/ExtremelySimpleLogger/ConsoleSink.cs
@@ -6,12 +6,36 @@ namespace ExtremelySimpleLogger {
///
public class ConsoleSink : Sink {
+ ///
+ /// The that this console sink should use when printing messages with the log level.
+ ///
+ public ConsoleColor WarnColor { get; set; } = ConsoleColor.DarkYellow;
+ ///
+ /// The that this console sink should use when printing messages with the and log levels.
+ ///
+ public ConsoleColor ErrorColor { get; set; } = ConsoleColor.DarkRed;
+ private readonly object locker = new object();
+
///
/// Logs the given message, which has already been formatted using .
///
+ /// The logger that the message was passed to
+ /// The importance level of this message
/// The message to log
- public override void Log(string s) {
- Console.WriteLine(s);
+ protected override void Log(Logger logger, LogLevel level, string s) {
+ lock (this.locker) {
+ switch (level) {
+ case LogLevel.Warn:
+ Console.ForegroundColor = this.WarnColor;
+ break;
+ case LogLevel.Error:
+ case LogLevel.Fatal:
+ Console.ForegroundColor = this.ErrorColor;
+ break;
+ }
+ Console.WriteLine(s);
+ Console.ResetColor();
+ }
}
}
diff --git a/ExtremelySimpleLogger/ExtremelySimpleLogger.csproj b/ExtremelySimpleLogger/ExtremelySimpleLogger.csproj
index a88bf26..ca38e3b 100644
--- a/ExtremelySimpleLogger/ExtremelySimpleLogger.csproj
+++ b/ExtremelySimpleLogger/ExtremelySimpleLogger.csproj
@@ -12,6 +12,6 @@
https://github.com/Ellpeck/ExtremelySimpleLogger
https://github.com/Ellpeck/ExtremelySimpleLogger
https://github.com/Ellpeck/ExtremelySimpleLogger/blob/master/LICENSE
- 1.1.0
+ 1.2.0
diff --git a/ExtremelySimpleLogger/FileSink.cs b/ExtremelySimpleLogger/FileSink.cs
index 46f9085..f96dc62 100644
--- a/ExtremelySimpleLogger/FileSink.cs
+++ b/ExtremelySimpleLogger/FileSink.cs
@@ -49,8 +49,10 @@ namespace ExtremelySimpleLogger {
///
/// Logs the given message, which has already been formatted using .
///
+ /// The logger that the message was passed to
+ /// The importance level of this message
/// The message to log
- public override void Log(string s) {
+ protected override void Log(Logger logger, LogLevel level, string s) {
lock (this.file) {
if (this.reopenOnWrite) {
using (var w = this.file.AppendText())
diff --git a/ExtremelySimpleLogger/Sink.cs b/ExtremelySimpleLogger/Sink.cs
index 9e853ad..494a7fe 100644
--- a/ExtremelySimpleLogger/Sink.cs
+++ b/ExtremelySimpleLogger/Sink.cs
@@ -32,14 +32,16 @@ namespace ExtremelySimpleLogger {
/// The message
/// An optional exception whose stack trace will be appended to the message
public virtual void Log(Logger logger, LogLevel level, object message, Exception e = null) {
- this.Log(this.Formatter.Invoke(logger, level, message, e));
+ this.Log(logger, level, this.Formatter.Invoke(logger, level, message, e));
}
///
/// Logs the given message, which has already been formatted using .
///
+ /// The logger that the message was passed to
+ /// The importance level of this message
/// The message to log
- public abstract void Log(string s);
+ protected abstract void Log(Logger logger, LogLevel level, string s);
///
/// The default formatter for logging messages.
@@ -54,7 +56,7 @@ namespace ExtremelySimpleLogger {
/// The message
/// An optional exception whose stack trace will be appended to the message
/// A formatted string to log
- public virtual string FormatDefault(Logger logger, LogLevel level, object message, Exception e = null) {
+ protected virtual string FormatDefault(Logger logger, LogLevel level, object message, Exception e = null) {
var builder = new StringBuilder();
// date
builder.Append($"[{DateTime.Now}] ");
diff --git a/ExtremelySimpleLogger/StringSink.cs b/ExtremelySimpleLogger/StringSink.cs
index 3587824..00e2a41 100644
--- a/ExtremelySimpleLogger/StringSink.cs
+++ b/ExtremelySimpleLogger/StringSink.cs
@@ -22,8 +22,10 @@ namespace ExtremelySimpleLogger {
///
/// Logs the given message, which has already been formatted using .
///
+ /// The logger that the message was passed to
+ /// The importance level of this message
/// The message to log
- public override void Log(string s) {
+ protected override void Log(Logger logger, LogLevel level, string s) {
lock (this.builder)
this.builder.AppendLine(s);
}