diff options
Diffstat (limited to 'Software/Visual_Studio/Tango.Logging/SessionFileLogger.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.Logging/SessionFileLogger.cs | 167 |
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 - } -} |
