aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Logging/SessionFileLogger.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Tango.Logging/SessionFileLogger.cs')
-rw-r--r--Software/Visual_Studio/Tango.Logging/SessionFileLogger.cs167
1 files changed, 0 insertions, 167 deletions
diff --git a/Software/Visual_Studio/Tango.Logging/SessionFileLogger.cs b/Software/Visual_Studio/Tango.Logging/SessionFileLogger.cs
deleted file mode 100644
index 4e378bfbf..000000000
--- a/Software/Visual_Studio/Tango.Logging/SessionFileLogger.cs
+++ /dev/null
@@ -1,167 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.Logging
-{
- public class SessionFileLogger : ILogger
- {
- private bool _inInSession;
- private int _writeCount;
- private const string FILE_SESSION_EXTENSION = "_session";
- private const int FILE_SIZE_CHECK_COUNT = 100;
-
- #region Static Properties
-
- /// <summary>
- /// Gets the default logs folder.
- /// </summary>
- public static String DefaultLogsFolder { get; private set; }
-
- #endregion
-
- #region Properties
-
- public bool Enabled { get; set; }
-
- /// <summary>
- /// Folder is used for save file session logs
- /// </summary>
- public String Folder { get; private set; }
-
- /// <summary>
- /// Full path of log file
- /// </summary>
- public String LogFile { get; private set; }
-
- /// <summary>
- /// Gets the tag name which will be appended to the file.
- /// </summary>
- public String Tag { get; private set; }
-
- /// <summary>
- /// Gets or sets the maximum file size limit.
- /// </summary>
- public long MaxFileSizeLimit { get; set; }
-
- #endregion
-
- #region Constructors
- /// <summary>
- /// Initializes the static members of the class.
- /// </summary>
- static SessionFileLogger()
- {
- DefaultLogsFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Twine", "Tango", "Logs", Path.GetFileNameWithoutExtension(AppDomain.CurrentDomain.FriendlyName), "Session");
-
- }
-
- public SessionFileLogger(String folder, String tag)
- {
- Folder = folder;
- Tag = tag;
- Directory.CreateDirectory(Folder);
- Enabled = true;
- _writeCount = 0;
- MaxFileSizeLimit = 1000000 * 10; //10 MB
- }
-
- public SessionFileLogger() : this(DefaultLogsFolder, Path.GetFileNameWithoutExtension(AppDomain.CurrentDomain.FriendlyName))
- {
- }
- #endregion
-
- #region Public Methods
-
- /// <summary>
- /// Creates the session. Only one file should be for session log, so removed old file and create a new file.
- /// </summary>
- public void CreateSession()
- {
- _writeCount = 0;
- RemoveOldLogFile();
- LogFile = CreateLogFileName();
- _inInSession = true;
- }
-
- /// <summary>
- /// Ends the session. Set flag _inInSession to false.
- /// </summary>
- public void EndSession()
- {
- _inInSession = false;
- }
-
- /// <summary>
- /// Called when write to session log file.
- /// </summary>
- /// <param name="output">The output.</param>
- public void OnLog(LogItemBase output)
- {
- if (_inInSession)
- {
- try
- {
- if (!File.Exists(LogFile) || (++_writeCount > FILE_SIZE_CHECK_COUNT && new FileInfo(LogFile).Length > MaxFileSizeLimit))
- {
- CreateSession();
- }
-
- File.AppendAllText(LogFile, output.ToString() + Environment.NewLine);
- }
- catch (Exception ex)
- {
- Debug.WriteLine($"Error Writing To Session Log File!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n{ex.ToString()}");
- }
- }
- }
-
- #endregion
-
- #region Private Methods
-
- /// <summary>
- /// Creates the name of the log file.
- /// </summary>
- /// <returns></returns>
- private String CreateLogFileName()
- {
- return Path.Combine(Folder, string.Format("{1}-{0:dd-MM-yyyy_HH-mm-ss}{2}.log", DateTime.Now, Tag, FILE_SESSION_EXTENSION));
- }
-
- /// <summary>
- /// Delete the old log file if is existed.
- /// </summary>
- private void RemoveOldLogFile()
- {
- try
- {
- if (Directory.Exists(Folder))
- {
- string[] fileEntries = Directory.GetFiles(Folder, "*.log");
- foreach (string fileName in fileEntries)
- {
- try
- {
- File.Delete(fileName);
- }
- catch (Exception ex)
- {
- Debug.WriteLine(ex);
- }
- }
- }
- }
- catch (Exception ex)
- {
- Debug.WriteLine(ex);
- }
- }
-
- #endregion
- }
-}