From e66cd269ad02302f2a5a4ec377112cd61789647e Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Mon, 16 Apr 2018 17:45:25 +0300 Subject: Application Logs & Embedded Logs on Logging Module! --- Software/Visual_Studio/Tango.Logging/LogItemBase.cs | 14 +++++++++++++- Software/Visual_Studio/Tango.Logging/LogManager.cs | 21 +++++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) (limited to 'Software/Visual_Studio/Tango.Logging') diff --git a/Software/Visual_Studio/Tango.Logging/LogItemBase.cs b/Software/Visual_Studio/Tango.Logging/LogItemBase.cs index 6b282b6ab..720de0905 100644 --- a/Software/Visual_Studio/Tango.Logging/LogItemBase.cs +++ b/Software/Visual_Studio/Tango.Logging/LogItemBase.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -53,6 +54,10 @@ namespace Tango.Logging /// public abstract override String ToString(); + /// + /// Gets the relative caller file path. + /// + /// protected String GetRelativeCallerFilePath() { if (base_path == null) @@ -62,7 +67,14 @@ namespace Tango.Logging base_path = CallerFile.Replace(relative, ""); } - return CallerFile.Replace(base_path, ""); + if (Path.IsPathRooted(CallerFile)) + { + return CallerFile.Remove(0, base_path.Length); + } + else + { + return CallerFile; + } } } } diff --git a/Software/Visual_Studio/Tango.Logging/LogManager.cs b/Software/Visual_Studio/Tango.Logging/LogManager.cs index 804fc14c5..e34b2e86d 100644 --- a/Software/Visual_Studio/Tango.Logging/LogManager.cs +++ b/Software/Visual_Studio/Tango.Logging/LogManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; using System.IO; using System.Linq; @@ -22,8 +23,23 @@ namespace Tango.Logging private Thread _loggingThread; private bool _isStarted; - private static LogManager _default; + /// + /// Occurs when a new log as been received. + /// + public event EventHandler NewLog; + + /// + /// Gets the registered loggers. + /// + public List RegisteredLoggers + { + get { return _loggers.ToList(); } + } + private static LogManager _default; + /// + /// Gets the default log manager instance. + /// public static LogManager Default { get @@ -203,7 +219,7 @@ namespace Tango.Logging private void AppendLog(LogItemBase log) { if (log != null) - { + { _loggers.Where(x => x.Enabled && x.Immediate).ToList().ForEach(x => x.OnLog(log)); } @@ -243,6 +259,7 @@ namespace Tango.Logging if (log != null) { _loggers.Where(x => x.Enabled && !x.Immediate).ToList().ForEach(x => x.OnLog(log)); + NewLog?.Invoke(this, log); } } } -- cgit v1.3.1