aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Logging
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-04-15 19:51:07 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-04-15 19:51:07 +0300
commitca293b80c52a54c73251fbf3cd50741fb5653ae9 (patch)
treef1168fa167a26bf8455e601291b8a19945a70187 /Software/Visual_Studio/Tango.Logging
parent9ff8293b603f72c5faa8d238b3005524c31cc5a8 (diff)
downloadTango-ca293b80c52a54c73251fbf3cd50741fb5653ae9.tar.gz
Tango-ca293b80c52a54c73251fbf3cd50741fb5653ae9.zip
Lots Of Work !
Diffstat (limited to 'Software/Visual_Studio/Tango.Logging')
-rw-r--r--Software/Visual_Studio/Tango.Logging/ExceptionLogItem.cs11
-rw-r--r--Software/Visual_Studio/Tango.Logging/FileLogger.cs17
-rw-r--r--Software/Visual_Studio/Tango.Logging/LogItemBase.cs22
-rw-r--r--Software/Visual_Studio/Tango.Logging/LogManager.cs3
-rw-r--r--Software/Visual_Studio/Tango.Logging/MessageLogItem.cs20
5 files changed, 55 insertions, 18 deletions
diff --git a/Software/Visual_Studio/Tango.Logging/ExceptionLogItem.cs b/Software/Visual_Studio/Tango.Logging/ExceptionLogItem.cs
index cc8980cdc..de8485249 100644
--- a/Software/Visual_Studio/Tango.Logging/ExceptionLogItem.cs
+++ b/Software/Visual_Studio/Tango.Logging/ExceptionLogItem.cs
@@ -25,10 +25,13 @@ namespace Tango.Logging
/// <summary>
/// Gets the log message.
/// </summary>
- /// <returns></returns>
- public override string GetMessage()
+ public override string Message
{
- return Exception.Message;
+ get
+ {
+ return Exception.Message;
+ }
+ set { }
}
/// <summary>
@@ -36,7 +39,7 @@ namespace Tango.Logging
/// </summary>
public override string ToString()
{
- return String.Format("[{0}] [{6}] [{1}] [{2}] [Line {3}]: {4}{5}", TimeStamp.ToString("HH:mm:ss.ff"), Path.GetFileNameWithoutExtension(CallerFile), CallerMethodName, CallerLineNumber, Description, Environment.NewLine + Exception.FlattenException(), Category);
+ return String.Format("[{0}] [{6}] [{1}] [{2}] [{3}]: {4}{5}", TimeStamp.ToString("HH:mm:ss.ff"), GetRelativeCallerFilePath(), CallerMethodName, CallerLineNumber, Description, Environment.NewLine + Exception.FlattenException(), Category);
}
}
diff --git a/Software/Visual_Studio/Tango.Logging/FileLogger.cs b/Software/Visual_Studio/Tango.Logging/FileLogger.cs
index e104b59b9..215b1d9ac 100644
--- a/Software/Visual_Studio/Tango.Logging/FileLogger.cs
+++ b/Software/Visual_Studio/Tango.Logging/FileLogger.cs
@@ -13,6 +13,10 @@ namespace Tango.Logging
/// <seealso cref="Tango.Logging.ILogger" />
public class FileLogger : ILogger
{
+ /// <summary>
+ /// Gets the logs folder.
+ /// </summary>
+ public static String DefaultLogsFolder { get; private set; }
/// <summary>
/// Gets or sets the log file.
@@ -20,14 +24,21 @@ namespace Tango.Logging
public String LogFile { get; private set; }
/// <summary>
+ /// Initializes the <see cref="FileLogger"/> class.
+ /// </summary>
+ static FileLogger()
+ {
+ DefaultLogsFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Twine", "Tango", "logs");
+ }
+
+ /// <summary>
/// Initializes a new instance of the <see cref="FileLogger"/> class.
/// </summary>
public FileLogger()
{
_isEnabled = true;
- String logsFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Twine", "Tango", "logs");
- Directory.CreateDirectory(logsFolder);
- LogFile = Path.Combine(logsFolder, string.Format("{1}-{0:dd-MM-yyyy_hh-mm-ss}.log", DateTime.Now, Path.GetFileNameWithoutExtension(System.AppDomain.CurrentDomain.FriendlyName)));
+ Directory.CreateDirectory(DefaultLogsFolder);
+ LogFile = Path.Combine(DefaultLogsFolder, string.Format("{1}-{0:dd-MM-yyyy_HH-mm-ss}.log", DateTime.Now, Path.GetFileNameWithoutExtension(AppDomain.CurrentDomain.FriendlyName)));
}
/// <summary>
diff --git a/Software/Visual_Studio/Tango.Logging/LogItemBase.cs b/Software/Visual_Studio/Tango.Logging/LogItemBase.cs
index 85451488a..6b282b6ab 100644
--- a/Software/Visual_Studio/Tango.Logging/LogItemBase.cs
+++ b/Software/Visual_Studio/Tango.Logging/LogItemBase.cs
@@ -11,6 +11,13 @@ namespace Tango.Logging
/// </summary>
public abstract class LogItemBase
{
+ private static String base_path;
+
+ /// <summary>
+ /// Gets or sets the assembly.
+ /// </summary>
+ public String CallerAssembly { get; set; }
+
/// <summary>
/// Gets or sets the caller method adding the exception.
/// </summary>
@@ -39,12 +46,23 @@ namespace Tango.Logging
/// <summary>
/// Gets the log message.
/// </summary>
- /// <returns></returns>
- public abstract String GetMessage();
+ public abstract String Message { get; set; }
/// <summary>
/// Returns a formatted string of the log item.
/// </summary>
public abstract override String ToString();
+
+ protected String GetRelativeCallerFilePath()
+ {
+ if (base_path == null)
+ {
+ int index = CallerFile.IndexOf("Visual_Studio") + "Visual_Studio".Length + 1;
+ String relative = CallerFile.Substring(index, CallerFile.Length - index);
+ base_path = CallerFile.Replace(relative, "");
+ }
+
+ return CallerFile.Replace(base_path, "");
+ }
}
}
diff --git a/Software/Visual_Studio/Tango.Logging/LogManager.cs b/Software/Visual_Studio/Tango.Logging/LogManager.cs
index c654b646f..804fc14c5 100644
--- a/Software/Visual_Studio/Tango.Logging/LogManager.cs
+++ b/Software/Visual_Studio/Tango.Logging/LogManager.cs
@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
+using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
@@ -107,6 +108,7 @@ namespace Tango.Logging
if (!Categories.Contains(category)) return e;
ExceptionLogItem log = new ExceptionLogItem();
+ log.CallerAssembly = Assembly.GetCallingAssembly().FullName;
log.CallerMethodName = caller;
log.CallerFile = file;
log.CallerLineNumber = lineNumber;
@@ -164,6 +166,7 @@ namespace Tango.Logging
if (!Categories.Contains(category)) return message;
MessageLogItem log = new MessageLogItem();
+ log.CallerAssembly = Assembly.GetCallingAssembly().FullName;
log.CallerMethodName = caller;
log.CallerFile = file;
log.CallerLineNumber = lineNumber;
diff --git a/Software/Visual_Studio/Tango.Logging/MessageLogItem.cs b/Software/Visual_Studio/Tango.Logging/MessageLogItem.cs
index f7d7e004c..f45aa8cea 100644
--- a/Software/Visual_Studio/Tango.Logging/MessageLogItem.cs
+++ b/Software/Visual_Studio/Tango.Logging/MessageLogItem.cs
@@ -12,18 +12,20 @@ namespace Tango.Logging
/// </summary>
public class MessageLogItem : LogItemBase
{
+ private String _message;
/// <summary>
/// Gets or sets the log message.
/// </summary>
- public String Message { get; set; }
-
- /// <summary>
- /// Gets the log message.
- /// </summary>
- /// <returns></returns>
- public override string GetMessage()
+ public override string Message
{
- return Message;
+ get
+ {
+ return _message;
+ }
+ set
+ {
+ _message = value;
+ }
}
/// <summary>
@@ -31,7 +33,7 @@ namespace Tango.Logging
/// </summary>
public override string ToString()
{
- return String.Format("[{0}] [{5}] [{1}] [{2}] [Line {3}]: {4}", TimeStamp.ToString("HH:mm:ss.ff"), Path.GetFileNameWithoutExtension(CallerFile), CallerMethodName, CallerLineNumber, Message, Category);
+ return String.Format("[{0}] [{5}] [{1}] [{2}] [{3}]: {4}", TimeStamp.ToString("HH:mm:ss.ff"), GetRelativeCallerFilePath(), CallerMethodName, CallerLineNumber, Message, Category);
}
}
}