aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Logging
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-04-16 17:45:25 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-04-16 17:45:25 +0300
commite66cd269ad02302f2a5a4ec377112cd61789647e (patch)
tree3f229e2460a16e3b3383cb39e7458a19469553d2 /Software/Visual_Studio/Tango.Logging
parent53f93d7fd2d2aa4571bad6e93e0c519fce242753 (diff)
downloadTango-e66cd269ad02302f2a5a4ec377112cd61789647e.tar.gz
Tango-e66cd269ad02302f2a5a4ec377112cd61789647e.zip
Application Logs & Embedded Logs on Logging Module!
Diffstat (limited to 'Software/Visual_Studio/Tango.Logging')
-rw-r--r--Software/Visual_Studio/Tango.Logging/LogItemBase.cs14
-rw-r--r--Software/Visual_Studio/Tango.Logging/LogManager.cs21
2 files changed, 32 insertions, 3 deletions
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
/// </summary>
public abstract override String ToString();
+ /// <summary>
+ /// Gets the relative caller file path.
+ /// </summary>
+ /// <returns></returns>
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;
+ /// <summary>
+ /// Occurs when a new log as been received.
+ /// </summary>
+ public event EventHandler<LogItemBase> NewLog;
+
+ /// <summary>
+ /// Gets the registered loggers.
+ /// </summary>
+ public List<ILogger> RegisteredLoggers
+ {
+ get { return _loggers.ToList(); }
+ }
+ private static LogManager _default;
+ /// <summary>
+ /// Gets the default log manager instance.
+ /// </summary>
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);
}
}
}