diff --git a/utils/@LogHandler/LogHandler.m b/utils/@LogHandler/LogHandler.m
new file mode 100644
index 0000000..7d5e140
--- /dev/null
+++ b/utils/@LogHandler/LogHandler.m
@@ -0,0 +1,38 @@
+classdef LogHandler < handle
+  % Use to start an stop using a LogWriter.
+  % Useful complement to static Logger. 
+
+  properties 
+    active = false;
+    handle = [];
+  end
+
+  methods
+    function obj = LogHanlder()
+    end
+
+    function start(obj, logFileCategory)
+      if not(isfolder("log"))
+        warning("The %s folder does not exist. Log file not created.",...
+          fullfile(pwd, "log"));
+        return
+      end
+      if obj.active
+        obj.handle.closeBlock();
+        obj.handle.logn("LOG FILE WRITING INTERRUPTED BY STARTING A NEW LOG FILE.")
+        obj.stop();
+      end
+      obj.handle = LogWriter(logFileCategory);
+      obj.active = true;
+    end
+
+    function stop(obj)
+      if obj.active
+        obj.handle.closeLog();
+        obj.handle = [];
+        obj.active = false;
+      end
+    end
+  end
+  
+end
\ No newline at end of file
diff --git a/utils/@Logger/Logger.m b/utils/@LogWriter/LogWriter.m
similarity index 60%
copy from utils/@Logger/Logger.m
copy to utils/@LogWriter/LogWriter.m
index 30640ef..2383e1c 100644
--- a/utils/@Logger/Logger.m
+++ b/utils/@LogWriter/LogWriter.m
@@ -1,173 +1,164 @@
-classdef Logger < handle
+classdef LogWriter < handle
 % Class to create and manage log files.
 %
 % Log files are created automatically and include starting and ending timstamps.
 % Methods are available to create section and delimitations in the 
 % handled log file.
 % 
 % The log file name is chosen based on the logFileCategory argument
 % given to the contructor. This argument is also used to delete
 % the oldest log files according to the maxNumberOfLogFiles (default = 5)
-% used with a Logger(logFileCategory,maxNumberOfLogFiles).
+% used with a LogWriter(logFileCategory,maxNumberOfLogFiles).
 
   properties (Access = private)
     startTime
     logFileCategory
     maxNumberOfLogFiles
     logFid
     prefix
     suffix
     horizontalDelimiter
   end
 
 
   methods
-
-    function obj = Logger(logFileCategory,varargin)
-      obj.startTime = datetime('now');
-      obj.logFileCategory = logFileCategory;
+    function obj = LogWriter(logFileCategory,varargin)
+      obj.startTime = datetime("now");
+      obj.logFileCategory = string(logFileCategory);
       if nargin == 2
         obj.maxNumberOfLogFiles = varargin{1};
       else
         obj.maxNumberOfLogFiles = 5;
       end
-      obj.prefix = '';
-      obj.suffix = '';
-      obj.horizontalDelimiter = '_______________________________________';
+      obj.prefix = "";
+      obj.suffix = "";
+      obj.horizontalDelimiter = "_______________________________________";
       obj.createNewLog;
     end
 
     function log(obj,textToLog,varargin)
       % to be used like sprintf().
       % write arguments in current log file.
-      textToLog = obj.replaceSpecialCharacter(textToLog);
+      textToLog = string(textToLog);
+      textToLog = replace(textToLog, "\", "/");
       textToLog = sprintf(textToLog,varargin{:});
-      fprintf(obj.logFid,[textToLog obj.suffix]);
+      fprintf(obj.logFid,textToLog+obj.suffix);
     end
 
     function logn(obj,textToLog,varargin)
-      obj.suffix = [obj.suffix '\n'];
+      obj.suffix = obj.suffix+"\n";
       try
         obj.log(textToLog,varargin{:});
       catch ME
         warning(ME.message);
       end
-      obj.suffix = obj.suffix(1:end-2);
+      obj.suffix = replace(obj.suffix, "\n", "");
       fprintf(obj.logFid,obj.prefix);
     end
 
     function newSection(obj,title)
       if isempty(obj.prefix)
         obj.newBlock;
       end
-      obj.logn('');
-      obj.prefix = [obj.prefix '  '];
+      obj.logn("");
+      obj.prefix = obj.prefix+"  ";
       obj.logn(title);
     end
 
 
     function newDelimitedSection(obj,title)
       if not(isempty(obj.prefix))
         prefixSave = obj.prefix;
         obj.prefix = obj.prefix(1);
-        obj.logn('');
+        obj.logn("");
         obj.logn(obj.horizontalDelimiter);
         obj.prefix = prefixSave;
-        obj.logn('');
-        obj.prefix = [obj.prefix '  '];
+        obj.logn("");
+        obj.prefix = obj.prefix+"  ";
         obj.log(title);
       else
         obj.newSection(title);
       end
     end
 
     function closeSection(obj)
       if (length(obj.prefix) > 3)
-        obj.prefix = obj.prefix(1:end-2);
-        obj.logn('');
+        currentPrefix = char(obj.prexif);
+        obj.prefix = currentPrefix(1:end-2);
+        obj.logn("");
       elseif (length(obj.prefix) > 0)
         obj.closeBlock;
       end
     end
 
     function closeBlock(obj)
       if (length(obj.prefix) > 0)
-        obj.prefix = obj.prefix(1);
-        obj.logn('');
+        obj.prefix = replace(obj.prefix, " ", "");
+        obj.logn("");
         obj.log(obj.horizontalDelimiter);
-        obj.prefix = '';
+        obj.prefix = "";
         obj.logn(obj.horizontalDelimiter);
-        obj.logn('');
-        obj.logn('');
+        obj.logn("");
+        obj.logn("");
       end
     end
 
     function closeLog(obj)
       obj.delete;
     end
 
     function deleteExtraLogFiles(obj)
-      existingLogFiles = dir(['log\' obj.logFileCategory '_*.log']);
+      existingLogFiles = dir(fullfile("log", obj.logFileCategory+"*.log"));
       numberOfExtraFiles = (length(existingLogFiles) - obj.maxNumberOfLogFiles);
       if (numberOfExtraFiles > 0)
         for i = 1:numberOfExtraFiles
           delete(fullfile(existingLogFiles(i).folder,existingLogFiles(i).name));
         end
       end
     end
-
   end
 
 
-
   methods (Access = private, Hidden = true)
-
     function createNewLog(obj)
-      if isempty(dir('log'))
-        mkdir('log');
+      if isempty(dir("log"))
+        mkdir("log");
       end
       obj.createLogFile;
       obj.deleteExtraLogFiles;
       obj.logHeader;
     end
 
     function createLogFile(obj)
-      obj.startTime.Format = '_yyyy_MM_dd_HHmmss';
-      obj.logFid = fopen(fullfile('log',[obj.logFileCategory char(obj.startTime) '.log']),'w');
+      obj.startTime.Format = "_yyyy_MM_dd_HHmmss";
+      obj.logFid = fopen(fullfile("log",obj.logFileCategory+char(obj.startTime)+".log"),"w");
     end
 
     function logHeader(obj)
-      obj.logn([obj.logFileCategory '.log']);
-      obj.startTime.Format = 'default';
-      obj.logn('Date: %s',char(obj.startTime));
-      obj.logn('');
-    end
-
-    function str = replaceSpecialCharacter(obj,str)
-      str = strrep(str,'\','/');
+      obj.logn(obj.logFileCategory+".log");
+      obj.startTime.Format = "default";
+      obj.logn("Date: %s",char(obj.startTime));
+      obj.logn("");
     end
 
     function newBlock(obj)
-      obj.logn('');
-      obj.logn('');
+      obj.logn("");
+      obj.logn("");
       obj.log(obj.horizontalDelimiter);
-      obj.prefix = ['|  '];
+      obj.prefix = "|  ";
       obj.logn(obj.horizontalDelimiter);
-      obj.logn('');
+      obj.logn("");
     end
 
     function delete(obj)
       obj.closeBlock;
-      obj.logn('');
-      obj.logn('');
-      obj.logn('Stop time: %s',char(datetime('now')));
-      obj.log('End of log file.');
+      obj.logn("");
+      obj.logn("");
+      obj.logn("Stop time: %s",char(datetime("now")));
+      obj.log("End of log file.");
       fclose(obj.logFid);
       obj.logFid = -1;
     end
-
   end
 
-
-
 end
diff --git a/utils/@Logger/Logger.m b/utils/@Logger/Logger.m
index 30640ef..4f64049 100644
--- a/utils/@Logger/Logger.m
+++ b/utils/@Logger/Logger.m
@@ -1,173 +1,59 @@
-classdef Logger < handle
-% Class to create and manage log files.
-%
-% Log files are created automatically and include starting and ending timstamps.
-% Methods are available to create section and delimitations in the 
-% handled log file.
-% 
-% The log file name is chosen based on the logFileCategory argument
-% given to the contructor. This argument is also used to delete
-% the oldest log files according to the maxNumberOfLogFiles (default = 5)
-% used with a Logger(logFileCategory,maxNumberOfLogFiles).
+classdef Logger
+  % Static interface to LogWriter
 
-  properties (Access = private)
-    startTime
-    logFileCategory
-    maxNumberOfLogFiles
-    logFid
-    prefix
-    suffix
-    horizontalDelimiter
+  properties (Constant, Access = private)
+    writing = LogHandler;
   end
 
 
-  methods
-
-    function obj = Logger(logFileCategory,varargin)
-      obj.startTime = datetime('now');
-      obj.logFileCategory = logFileCategory;
-      if nargin == 2
-        obj.maxNumberOfLogFiles = varargin{1};
-      else
-        obj.maxNumberOfLogFiles = 5;
-      end
-      obj.prefix = '';
-      obj.suffix = '';
-      obj.horizontalDelimiter = '_______________________________________';
-      obj.createNewLog;
+  methods (Static)
+    function output = isactive()
+      output = Logger.writing.active;
     end
 
-    function log(obj,textToLog,varargin)
-      % to be used like sprintf().
-      % write arguments in current log file.
-      textToLog = obj.replaceSpecialCharacter(textToLog);
-      textToLog = sprintf(textToLog,varargin{:});
-      fprintf(obj.logFid,[textToLog obj.suffix]);
+    function start(logFileCategory)
+      Logger.writing.start(logFileCategory);
     end
 
-    function logn(obj,textToLog,varargin)
-      obj.suffix = [obj.suffix '\n'];
-      try
-        obj.log(textToLog,varargin{:});
-      catch ME
-        warning(ME.message);
-      end
-      obj.suffix = obj.suffix(1:end-2);
-      fprintf(obj.logFid,obj.prefix);
+    function stop()
+      Logger.writing.stop();
     end
 
-    function newSection(obj,title)
-      if isempty(obj.prefix)
-        obj.newBlock;
+    function log(textToLog, varargin)
+      if Logger.isactive
+        Logger.writing.handle.log(textToLog, varargin{:});
       end
-      obj.logn('');
-      obj.prefix = [obj.prefix '  '];
-      obj.logn(title);
     end
 
-
-    function newDelimitedSection(obj,title)
-      if not(isempty(obj.prefix))
-        prefixSave = obj.prefix;
-        obj.prefix = obj.prefix(1);
-        obj.logn('');
-        obj.logn(obj.horizontalDelimiter);
-        obj.prefix = prefixSave;
-        obj.logn('');
-        obj.prefix = [obj.prefix '  '];
-        obj.log(title);
-      else
-        obj.newSection(title);
+    function logn(textToLog, varargin)
+      if Logger.isactive
+        Logger.writing.handle.logn(textToLog, varargin{:});
       end
     end
 
-    function closeSection(obj)
-      if (length(obj.prefix) > 3)
-        obj.prefix = obj.prefix(1:end-2);
-        obj.logn('');
-      elseif (length(obj.prefix) > 0)
-        obj.closeBlock;
+    function newSection(title)
+      if Logger.isactive
+        Logger.writing.handle.newSection(title);
       end
     end
 
-    function closeBlock(obj)
-      if (length(obj.prefix) > 0)
-        obj.prefix = obj.prefix(1);
-        obj.logn('');
-        obj.log(obj.horizontalDelimiter);
-        obj.prefix = '';
-        obj.logn(obj.horizontalDelimiter);
-        obj.logn('');
-        obj.logn('');
+    function newDelimitedSection(title)
+      if Logger.isactive
+        Logger.writing.handle.newDelimitedSection(title);
       end
     end
 
-    function closeLog(obj)
-      obj.delete;
-    end
-
-    function deleteExtraLogFiles(obj)
-      existingLogFiles = dir(['log\' obj.logFileCategory '_*.log']);
-      numberOfExtraFiles = (length(existingLogFiles) - obj.maxNumberOfLogFiles);
-      if (numberOfExtraFiles > 0)
-        for i = 1:numberOfExtraFiles
-          delete(fullfile(existingLogFiles(i).folder,existingLogFiles(i).name));
-        end
+    function closeSection()
+      if Logger.isactive
+        Logger.writing.handle.closeSection();
       end
     end
 
-  end
-
-
-
-  methods (Access = private, Hidden = true)
-
-    function createNewLog(obj)
-      if isempty(dir('log'))
-        mkdir('log');
+    function closeBlock()
+      if Logger.isactive
+        Logger.writing.handle.closeBlock();
       end
-      obj.createLogFile;
-      obj.deleteExtraLogFiles;
-      obj.logHeader;
-    end
-
-    function createLogFile(obj)
-      obj.startTime.Format = '_yyyy_MM_dd_HHmmss';
-      obj.logFid = fopen(fullfile('log',[obj.logFileCategory char(obj.startTime) '.log']),'w');
-    end
-
-    function logHeader(obj)
-      obj.logn([obj.logFileCategory '.log']);
-      obj.startTime.Format = 'default';
-      obj.logn('Date: %s',char(obj.startTime));
-      obj.logn('');
-    end
-
-    function str = replaceSpecialCharacter(obj,str)
-      str = strrep(str,'\','/');
-    end
-
-    function newBlock(obj)
-      obj.logn('');
-      obj.logn('');
-      obj.log(obj.horizontalDelimiter);
-      obj.prefix = ['|  '];
-      obj.logn(obj.horizontalDelimiter);
-      obj.logn('');
-    end
-
-    function delete(obj)
-      obj.closeBlock;
-      obj.logn('');
-      obj.logn('');
-      obj.logn('Stop time: %s',char(datetime('now')));
-      obj.log('End of log file.');
-      fclose(obj.logFid);
-      obj.logFid = -1;
     end
 
   end
-
-
-
 end