From 4562d7de1fcc16e2df71aacc2a41b6efb7de91c5 Mon Sep 17 00:00:00 2001
From: GuruGurra <43576947+GuruGurra@users.noreply.github.com>
Date: Thu, 5 Mar 2020 09:39:00 +0100
Subject: [PATCH 1/7] Add files via upload
---
LayoutRenderers/ElapsedTimeLayoutRenderer.cs | 35 +++++
LayoutRenderers/RealTimeLayoutRenderer.cs | 27 ++++
Logger.cs | 137 +++++++++++++++++++
3 files changed, 199 insertions(+)
create mode 100644 LayoutRenderers/ElapsedTimeLayoutRenderer.cs
create mode 100644 LayoutRenderers/RealTimeLayoutRenderer.cs
create mode 100644 Logger.cs
diff --git a/LayoutRenderers/ElapsedTimeLayoutRenderer.cs b/LayoutRenderers/ElapsedTimeLayoutRenderer.cs
new file mode 100644
index 0000000..19cabaa
--- /dev/null
+++ b/LayoutRenderers/ElapsedTimeLayoutRenderer.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using System.Text.RegularExpressions;
+using NLog;
+using NLog.LayoutRenderers;
+
+namespace BarRaider.SdTools.LayoutRenderers
+{
+ ///
+ /// Renderer to get the time elapsed since the last logged event.
+ ///
+ [LayoutRenderer("elapsed-time")]
+ public class ElapsedTimeLayoutRenderer : LayoutRenderer
+ {
+ private DateTime? _lastTimeStamp;
+
+ ///
+ /// Append elapsed time since the last log entry in milliseconds to the log
+ ///
+ /// StringBuilder containing log parts, the result is appended to this StringBuilder
+ /// not used
+ protected override void Append(StringBuilder builder, LogEventInfo logEvent)
+ {
+ DateTime now = DateTime.Now;
+ var lastTimeStamp = _lastTimeStamp ?? now;
+ var elapsedTime = now - lastTimeStamp;
+ var elapsedTimeString = $"{elapsedTime.TotalMilliseconds:f4}".PadLeft(10);
+ builder.Append($"{elapsedTimeString}ms");
+ _lastTimeStamp = now;
+ }
+ }
+
+}
diff --git a/LayoutRenderers/RealTimeLayoutRenderer.cs b/LayoutRenderers/RealTimeLayoutRenderer.cs
new file mode 100644
index 0000000..a0b6260
--- /dev/null
+++ b/LayoutRenderers/RealTimeLayoutRenderer.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using System.Text.RegularExpressions;
+using NLog;
+using NLog.LayoutRenderers;
+
+namespace BarRaider.SdTools.LayoutRenderers
+{
+ ///
+ /// Renderer to get the real time added to the log. Uses the real time (DateTime.Now) instead of the logEvent.TimeStamp since that TimeStamp seems to be some clustered timestamp used for multiple log entries.
+ ///
+ [LayoutRenderer("real-time")]
+ public class RealTimeLayoutRenderer : LayoutRenderer
+ {
+ ///
+ /// Append DateTime.Now including milliseconds to the log
+ ///
+ /// StringBuilder containing log parts, the result is appended to this StringBuilder
+ /// not used
+ protected override void Append(StringBuilder builder, LogEventInfo logEvent)
+ {
+ builder.Append($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}");
+ }
+ }
+}
diff --git a/Logger.cs b/Logger.cs
new file mode 100644
index 0000000..d02505c
--- /dev/null
+++ b/Logger.cs
@@ -0,0 +1,137 @@
+using NLog;
+using NLog.Config;
+using NLog.LayoutRenderers;
+using NLog.Targets;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BarRaider.SdTools
+{
+ ///
+ /// Tracing levels used for Logger
+ ///
+ public enum TracingLevel
+ {
+ ///
+ /// Debug level
+ ///
+ DEBUG,
+
+ ///
+ /// Informational level
+ ///
+ INFO,
+
+ ///
+ /// Warning level
+ ///
+ WARN,
+
+ ///
+ /// Error level
+ ///
+ ERROR,
+
+ ///
+ /// Fatal (highest) level
+ ///
+ FATAL
+ }
+
+ ///
+ /// Log4Net logger helper class
+ ///
+ public class Logger
+ {
+ private static Logger instance = null;
+ private static readonly object objLock = new object();
+
+ ///
+ /// Returns singelton entry of Log4Net logger
+ ///
+ public static Logger Instance
+ {
+ get
+ {
+ if (instance != null)
+ {
+ return instance;
+ }
+
+ lock (objLock)
+ {
+ if (instance == null)
+ {
+ instance = new Logger();
+ }
+ return instance;
+ }
+ }
+ }
+
+ ///
+ /// Set logging format. In addition to the standard layouts defined for NLog, ${real-time} ${elapsed-time} are available.
+ ///
+ /// "https://nlog-project.org/config/?tab=layout-renderers"
+ public string Layout
+ {
+ get
+ {
+ LoggingConfiguration lc = NLog.LogManager.Configuration;
+ return ((FileTarget)lc.LoggingRules[0].Targets[0]).Layout.ToString();
+ }
+ set
+ {
+ LoggingConfiguration lc = NLog.LogManager.Configuration;
+ ((FileTarget)lc.LoggingRules[0].Targets[0]).Layout = value;
+ }
+ }
+
+ private readonly NLog.Logger log = null;
+ private Logger()
+ {
+ LayoutRenderer.Register("elapsed-time");
+ LayoutRenderer.Register("real-time");
+ var config = new NLog.Config.LoggingConfiguration();
+ var logfile = new NLog.Targets.FileTarget("logfile") { FileName = "pluginlog.log", ArchiveEvery=NLog.Targets.FileArchivePeriod.Day, MaxArchiveFiles=10, ArchiveFileName="logs/log.{###}.log", ArchiveNumbering=NLog.Targets.ArchiveNumberingMode.Rolling};
+ config.AddRule(LogLevel.Debug, LogLevel.Fatal, logfile);
+ NLog.LogManager.Configuration = config;
+ log = LogManager.GetCurrentClassLogger();
+ LogMessage(TracingLevel.DEBUG, "Logger Initialized");
+ }
+
+ ///
+ /// Add message to log with a specific severity level.
+ ///
+ ///
+ ///
+ public void LogMessage(TracingLevel Level, string Message)
+ {
+ switch (Level)
+ {
+ case TracingLevel.DEBUG:
+ log.Debug(Message);
+ break;
+
+ case TracingLevel.INFO:
+ log.Info(Message);
+ break;
+
+ case TracingLevel.WARN:
+ log.Warn(Message);
+ break;
+
+ case TracingLevel.ERROR:
+ log.Error(Message);
+ break;
+
+ case TracingLevel.FATAL:
+ log.Fatal(Message);
+ break;
+ }
+ }
+ }
+}
From 252dcfd1cf881b3be6e968cc5a13cb77c0f43b1a Mon Sep 17 00:00:00 2001
From: GuruGurra <43576947+GuruGurra@users.noreply.github.com>
Date: Thu, 5 Mar 2020 09:39:49 +0100
Subject: [PATCH 2/7] Delete ElapsedTimeLayoutRenderer.cs
---
LayoutRenderers/ElapsedTimeLayoutRenderer.cs | 35 --------------------
1 file changed, 35 deletions(-)
delete mode 100644 LayoutRenderers/ElapsedTimeLayoutRenderer.cs
diff --git a/LayoutRenderers/ElapsedTimeLayoutRenderer.cs b/LayoutRenderers/ElapsedTimeLayoutRenderer.cs
deleted file mode 100644
index 19cabaa..0000000
--- a/LayoutRenderers/ElapsedTimeLayoutRenderer.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Text;
-using System.Text.RegularExpressions;
-using NLog;
-using NLog.LayoutRenderers;
-
-namespace BarRaider.SdTools.LayoutRenderers
-{
- ///
- /// Renderer to get the time elapsed since the last logged event.
- ///
- [LayoutRenderer("elapsed-time")]
- public class ElapsedTimeLayoutRenderer : LayoutRenderer
- {
- private DateTime? _lastTimeStamp;
-
- ///
- /// Append elapsed time since the last log entry in milliseconds to the log
- ///
- /// StringBuilder containing log parts, the result is appended to this StringBuilder
- /// not used
- protected override void Append(StringBuilder builder, LogEventInfo logEvent)
- {
- DateTime now = DateTime.Now;
- var lastTimeStamp = _lastTimeStamp ?? now;
- var elapsedTime = now - lastTimeStamp;
- var elapsedTimeString = $"{elapsedTime.TotalMilliseconds:f4}".PadLeft(10);
- builder.Append($"{elapsedTimeString}ms");
- _lastTimeStamp = now;
- }
- }
-
-}
From 021bfaae12122bfe46b07d0fa85c361e4618ce61 Mon Sep 17 00:00:00 2001
From: GuruGurra <43576947+GuruGurra@users.noreply.github.com>
Date: Thu, 5 Mar 2020 09:39:59 +0100
Subject: [PATCH 3/7] Delete RealTimeLayoutRenderer.cs
---
LayoutRenderers/RealTimeLayoutRenderer.cs | 27 -----------------------
1 file changed, 27 deletions(-)
delete mode 100644 LayoutRenderers/RealTimeLayoutRenderer.cs
diff --git a/LayoutRenderers/RealTimeLayoutRenderer.cs b/LayoutRenderers/RealTimeLayoutRenderer.cs
deleted file mode 100644
index a0b6260..0000000
--- a/LayoutRenderers/RealTimeLayoutRenderer.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Text;
-using System.Text.RegularExpressions;
-using NLog;
-using NLog.LayoutRenderers;
-
-namespace BarRaider.SdTools.LayoutRenderers
-{
- ///
- /// Renderer to get the real time added to the log. Uses the real time (DateTime.Now) instead of the logEvent.TimeStamp since that TimeStamp seems to be some clustered timestamp used for multiple log entries.
- ///
- [LayoutRenderer("real-time")]
- public class RealTimeLayoutRenderer : LayoutRenderer
- {
- ///
- /// Append DateTime.Now including milliseconds to the log
- ///
- /// StringBuilder containing log parts, the result is appended to this StringBuilder
- /// not used
- protected override void Append(StringBuilder builder, LogEventInfo logEvent)
- {
- builder.Append($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}");
- }
- }
-}
From 040b9a7d2ce74a79838c3399f5a5ad211b3b08c5 Mon Sep 17 00:00:00 2001
From: GuruGurra <43576947+GuruGurra@users.noreply.github.com>
Date: Thu, 5 Mar 2020 09:40:16 +0100
Subject: [PATCH 4/7] Delete Logger.cs
---
Logger.cs | 137 ------------------------------------------------------
1 file changed, 137 deletions(-)
delete mode 100644 Logger.cs
diff --git a/Logger.cs b/Logger.cs
deleted file mode 100644
index d02505c..0000000
--- a/Logger.cs
+++ /dev/null
@@ -1,137 +0,0 @@
-using NLog;
-using NLog.Config;
-using NLog.LayoutRenderers;
-using NLog.Targets;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace BarRaider.SdTools
-{
- ///
- /// Tracing levels used for Logger
- ///
- public enum TracingLevel
- {
- ///
- /// Debug level
- ///
- DEBUG,
-
- ///
- /// Informational level
- ///
- INFO,
-
- ///
- /// Warning level
- ///
- WARN,
-
- ///
- /// Error level
- ///
- ERROR,
-
- ///
- /// Fatal (highest) level
- ///
- FATAL
- }
-
- ///
- /// Log4Net logger helper class
- ///
- public class Logger
- {
- private static Logger instance = null;
- private static readonly object objLock = new object();
-
- ///
- /// Returns singelton entry of Log4Net logger
- ///
- public static Logger Instance
- {
- get
- {
- if (instance != null)
- {
- return instance;
- }
-
- lock (objLock)
- {
- if (instance == null)
- {
- instance = new Logger();
- }
- return instance;
- }
- }
- }
-
- ///
- /// Set logging format. In addition to the standard layouts defined for NLog, ${real-time} ${elapsed-time} are available.
- ///
- /// "https://nlog-project.org/config/?tab=layout-renderers"
- public string Layout
- {
- get
- {
- LoggingConfiguration lc = NLog.LogManager.Configuration;
- return ((FileTarget)lc.LoggingRules[0].Targets[0]).Layout.ToString();
- }
- set
- {
- LoggingConfiguration lc = NLog.LogManager.Configuration;
- ((FileTarget)lc.LoggingRules[0].Targets[0]).Layout = value;
- }
- }
-
- private readonly NLog.Logger log = null;
- private Logger()
- {
- LayoutRenderer.Register("elapsed-time");
- LayoutRenderer.Register("real-time");
- var config = new NLog.Config.LoggingConfiguration();
- var logfile = new NLog.Targets.FileTarget("logfile") { FileName = "pluginlog.log", ArchiveEvery=NLog.Targets.FileArchivePeriod.Day, MaxArchiveFiles=10, ArchiveFileName="logs/log.{###}.log", ArchiveNumbering=NLog.Targets.ArchiveNumberingMode.Rolling};
- config.AddRule(LogLevel.Debug, LogLevel.Fatal, logfile);
- NLog.LogManager.Configuration = config;
- log = LogManager.GetCurrentClassLogger();
- LogMessage(TracingLevel.DEBUG, "Logger Initialized");
- }
-
- ///
- /// Add message to log with a specific severity level.
- ///
- ///
- ///
- public void LogMessage(TracingLevel Level, string Message)
- {
- switch (Level)
- {
- case TracingLevel.DEBUG:
- log.Debug(Message);
- break;
-
- case TracingLevel.INFO:
- log.Info(Message);
- break;
-
- case TracingLevel.WARN:
- log.Warn(Message);
- break;
-
- case TracingLevel.ERROR:
- log.Error(Message);
- break;
-
- case TracingLevel.FATAL:
- log.Fatal(Message);
- break;
- }
- }
- }
-}
From ca2c21935cd88b27aa61d2b7b07a81be68baa2a9 Mon Sep 17 00:00:00 2001
From: GuruGurra <43576947+GuruGurra@users.noreply.github.com>
Date: Thu, 5 Mar 2020 09:40:53 +0100
Subject: [PATCH 5/7] Add files via upload
---
.../ElapsedTimeLayoutRenderer.cs | 35 +++++++++++++++++++
.../LayoutRenderers/RealTimeLayoutRenderer.cs | 27 ++++++++++++++
barraider-sdtools/Logger.cs | 31 +++++++++++++---
3 files changed, 89 insertions(+), 4 deletions(-)
create mode 100644 barraider-sdtools/LayoutRenderers/ElapsedTimeLayoutRenderer.cs
create mode 100644 barraider-sdtools/LayoutRenderers/RealTimeLayoutRenderer.cs
diff --git a/barraider-sdtools/LayoutRenderers/ElapsedTimeLayoutRenderer.cs b/barraider-sdtools/LayoutRenderers/ElapsedTimeLayoutRenderer.cs
new file mode 100644
index 0000000..19cabaa
--- /dev/null
+++ b/barraider-sdtools/LayoutRenderers/ElapsedTimeLayoutRenderer.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using System.Text.RegularExpressions;
+using NLog;
+using NLog.LayoutRenderers;
+
+namespace BarRaider.SdTools.LayoutRenderers
+{
+ ///
+ /// Renderer to get the time elapsed since the last logged event.
+ ///
+ [LayoutRenderer("elapsed-time")]
+ public class ElapsedTimeLayoutRenderer : LayoutRenderer
+ {
+ private DateTime? _lastTimeStamp;
+
+ ///
+ /// Append elapsed time since the last log entry in milliseconds to the log
+ ///
+ /// StringBuilder containing log parts, the result is appended to this StringBuilder
+ /// not used
+ protected override void Append(StringBuilder builder, LogEventInfo logEvent)
+ {
+ DateTime now = DateTime.Now;
+ var lastTimeStamp = _lastTimeStamp ?? now;
+ var elapsedTime = now - lastTimeStamp;
+ var elapsedTimeString = $"{elapsedTime.TotalMilliseconds:f4}".PadLeft(10);
+ builder.Append($"{elapsedTimeString}ms");
+ _lastTimeStamp = now;
+ }
+ }
+
+}
diff --git a/barraider-sdtools/LayoutRenderers/RealTimeLayoutRenderer.cs b/barraider-sdtools/LayoutRenderers/RealTimeLayoutRenderer.cs
new file mode 100644
index 0000000..a0b6260
--- /dev/null
+++ b/barraider-sdtools/LayoutRenderers/RealTimeLayoutRenderer.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using System.Text.RegularExpressions;
+using NLog;
+using NLog.LayoutRenderers;
+
+namespace BarRaider.SdTools.LayoutRenderers
+{
+ ///
+ /// Renderer to get the real time added to the log. Uses the real time (DateTime.Now) instead of the logEvent.TimeStamp since that TimeStamp seems to be some clustered timestamp used for multiple log entries.
+ ///
+ [LayoutRenderer("real-time")]
+ public class RealTimeLayoutRenderer : LayoutRenderer
+ {
+ ///
+ /// Append DateTime.Now including milliseconds to the log
+ ///
+ /// StringBuilder containing log parts, the result is appended to this StringBuilder
+ /// not used
+ protected override void Append(StringBuilder builder, LogEventInfo logEvent)
+ {
+ builder.Append($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}");
+ }
+ }
+}
diff --git a/barraider-sdtools/Logger.cs b/barraider-sdtools/Logger.cs
index 63ee624..d02505c 100644
--- a/barraider-sdtools/Logger.cs
+++ b/barraider-sdtools/Logger.cs
@@ -1,4 +1,7 @@
using NLog;
+using NLog.Config;
+using NLog.LayoutRenderers;
+using NLog.Targets;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -67,14 +70,34 @@ public static Logger Instance
return instance;
}
}
- }
+ }
+
+ ///
+ /// Set logging format. In addition to the standard layouts defined for NLog, ${real-time} ${elapsed-time} are available.
+ ///
+ /// "https://nlog-project.org/config/?tab=layout-renderers"
+ public string Layout
+ {
+ get
+ {
+ LoggingConfiguration lc = NLog.LogManager.Configuration;
+ return ((FileTarget)lc.LoggingRules[0].Targets[0]).Layout.ToString();
+ }
+ set
+ {
+ LoggingConfiguration lc = NLog.LogManager.Configuration;
+ ((FileTarget)lc.LoggingRules[0].Targets[0]).Layout = value;
+ }
+ }
private readonly NLog.Logger log = null;
private Logger()
{
- var config = new NLog.Config.LoggingConfiguration();
- var logfile = new NLog.Targets.FileTarget("logfile") { FileName = "pluginlog.log", ArchiveEvery=NLog.Targets.FileArchivePeriod.Day, MaxArchiveFiles=10, ArchiveFileName="logs/log.{###}.log", ArchiveNumbering=NLog.Targets.ArchiveNumberingMode.Rolling };
- config.AddRule(LogLevel.Debug, LogLevel.Fatal, logfile);
+ LayoutRenderer.Register("elapsed-time");
+ LayoutRenderer.Register("real-time");
+ var config = new NLog.Config.LoggingConfiguration();
+ var logfile = new NLog.Targets.FileTarget("logfile") { FileName = "pluginlog.log", ArchiveEvery=NLog.Targets.FileArchivePeriod.Day, MaxArchiveFiles=10, ArchiveFileName="logs/log.{###}.log", ArchiveNumbering=NLog.Targets.ArchiveNumberingMode.Rolling};
+ config.AddRule(LogLevel.Debug, LogLevel.Fatal, logfile);
NLog.LogManager.Configuration = config;
log = LogManager.GetCurrentClassLogger();
LogMessage(TracingLevel.DEBUG, "Logger Initialized");
From ad9239989d6f7aefe8c39205ed971215d3486f22 Mon Sep 17 00:00:00 2001
From: GuruGurra <43576947+GuruGurra@users.noreply.github.com>
Date: Thu, 5 Mar 2020 09:41:34 +0100
Subject: [PATCH 6/7] Add files via upload
From 0ed23bcfafb88c29f8b7584d901f047f0d6783d8 Mon Sep 17 00:00:00 2001
From: GuruGurra <43576947+GuruGurra@users.noreply.github.com>
Date: Thu, 5 Mar 2020 09:42:28 +0100
Subject: [PATCH 7/7] Add files via upload