@@ -10,10 +10,10 @@ namespace MemPlus.Business.LOG
1010{
1111 /// <inheritdoc />
1212 /// <summary>
13- /// Class containing methods to control logs
13+ /// Internal class containing methods to control logs
1414 /// </summary>
1515 // ReSharper disable once InconsistentNaming
16- public class LogController : IDisposable
16+ internal sealed class LogController : IDisposable
1717 {
1818 #region Variables
1919 /// <summary>
@@ -159,7 +159,8 @@ internal void SetAutoClearInterval(int clearInterval)
159159 /// <param name="saveToFile">True if logs should be saved to a file, otherwise false</param>
160160 internal void SetSaveToFile ( bool saveToFile )
161161 {
162- if ( _saveToFile )
162+ if ( _saveToFile == saveToFile ) return ;
163+ if ( _saveToFile && ! saveToFile )
163164 {
164165 // Make sure the contents of the log file is written before disabling this function
165166 DisposeFileResources ( ) ;
@@ -169,7 +170,7 @@ internal void SetSaveToFile(bool saveToFile)
169170 {
170171 // Generate a new FileStream that allows other handles to access the file
171172 _fileStream = new FileStream ( _logPath ,
172- FileMode . OpenOrCreate ,
173+ FileMode . Append ,
173174 FileAccess . Write ,
174175 FileShare . ReadWrite ) ;
175176 _streamWriter = new StreamWriter ( _fileStream ) { AutoFlush = true } ;
@@ -194,8 +195,8 @@ internal void SetSaveDirectory(string saveDirectory)
194195
195196 // Generate a new file path for the logs using the starting time of the LogController instance
196197 // ReSharper disable once StringLiteralTypo
197- _logPath = saveDirectory + "memplus_" + _startTime . Year + _startTime . Month + _startTime . Day + "_" +
198- _startTime . Hour + _startTime . Minute + _startTime . Second + ".log" ;
198+ _logPath = saveDirectory + "memplus_" + _startTime . Year + "-" + _startTime . Month + "-" + _startTime . Day + "_" +
199+ _startTime . Hour + "-" + _startTime . Minute + "-" + _startTime . Second + ".log" ;
199200 }
200201
201202 /// <summary>
@@ -251,8 +252,14 @@ internal void RemoveLog(Log l)
251252 /// Clear all Log objects that have a specific LogType
252253 /// </summary>
253254 /// <param name="logType">The LogType that Log objects need to contain in order to be removed</param>
254- internal void ClearLogs ( LogType logType )
255+ internal void ClearLogs ( LogType ? logType )
255256 {
257+ if ( logType == null )
258+ {
259+ ClearLogs ( ) ;
260+ return ;
261+ }
262+
256263 List < Log > deleted = new List < Log > ( ) ;
257264
258265 for ( int i = _logList . Count - 1 ; i >= 0 ; i -- )
@@ -302,7 +309,7 @@ internal List<Log> GetLogs(LogType? logType)
302309 /// <param name="path">The path where logs should be stored</param>
303310 /// <param name="logType">The type of logs that should be saved. Can be null if all logs should be saved</param>
304311 /// <param name="exportType">The type of export that should be performed</param>
305- internal void Export ( string path , LogType ? logType , ExportTypes . ExportType exportType )
312+ internal void Export ( string path , LogType ? logType , ExportType exportType )
306313 {
307314 List < Log > exportList ;
308315
@@ -327,16 +334,16 @@ internal void Export(string path, LogType? logType, ExportTypes.ExportType expor
327334 // ReSharper disable once SwitchStatementMissingSomeCases
328335 switch ( exportType )
329336 {
330- case ExportTypes . ExportType . Html :
337+ case ExportType . Html :
331338 LogExporter . ExportHtml ( path , exportList ) ;
332339 break ;
333340 default :
334341 LogExporter . ExportTxt ( path , exportList ) ;
335342 break ;
336- case ExportTypes . ExportType . Csv :
343+ case ExportType . Csv :
337344 LogExporter . ExportCsv ( path , exportList ) ;
338345 break ;
339- case ExportTypes . ExportType . Excel :
346+ case ExportType . Excel :
340347 LogExporter . ExportExcel ( path , exportList ) ;
341348 break ;
342349 }
0 commit comments