diff --git a/DG_PY_FOFBTool/DG_PY_FOFBTool.py b/DG_PY_FOFBTool/DG_PY_FOFBTool.py
index 7bba6d54b12047509301909a8dcd3b4fce480890..f7917be9cc8a646eb206531c18f8f022ed516c76 100644
--- a/DG_PY_FOFBTool/DG_PY_FOFBTool.py
+++ b/DG_PY_FOFBTool/DG_PY_FOFBTool.py
@@ -75,6 +75,8 @@ class DG_PY_FOFBTool(Device):
             - Type:'DevVarLongArray'
         k2_y
             - Type:'DevVarLongArray'
+        loglevel
+            - Type:'DevString'
     """
     # PROTECTED REGION ID(DG_PY_FOFBTool.class_variable) ENABLED START #
 
@@ -168,6 +170,11 @@ class DG_PY_FOFBTool(Device):
         mandatory=True
     )
 
+    loglevel = device_property(
+        dtype='DevString',
+        mandatory=True
+    )
+
     # ----------
     # Attributes
     # ----------
@@ -181,6 +188,11 @@ class DG_PY_FOFBTool(Device):
         dtype='DevString',
     )
 
+    logs = attribute(
+        dtype=('DevString',),
+        max_dim_x=1024,
+    )
+
     # ---------------
     # General methods
     # ---------------
@@ -199,13 +211,18 @@ class DG_PY_FOFBTool(Device):
             logger.warning("Not logging to file, could not open location {}".format(self.logfilepath))
         else:
             fh.setLevel(logging.DEBUG)
-            fh.setFormatter(logging.Formatter("{levelname:8}: {message}", style='{'))
+            fh.setFormatter(logging.Formatter("{asctime} {levelname:8}: {message}", style='{'))
             logger.addHandler(fh)
-        logger.setLevel(logging.DEBUG)
+
+        self.filehandler = fh
+
+        logger.setLevel(getattr(logging, self.loglevel.upper()))
 
         if not hasattr(self, "_include_lbp"):
             self._include_lbp= False
 
+        self.set_state(tango.DevState.ON)
+
 
         #----- PROTECTED REGION END -----#	//	DG_PY_FOFBTool.init_device
 
@@ -223,7 +240,10 @@ class DG_PY_FOFBTool(Device):
         destructor and by the device Init command.
         """
         #----- PROTECTED REGION ID(DG_PY_FOFBTool.delete_device) ENABLED START -----#
-        
+
+        logger = logging.getLogger("FofbTool")
+        logger.removeHandler(self.filehandler)
+
         #----- PROTECTED REGION END -----#	//	DG_PY_FOFBTool.delete_device
     # ------------------
     # Attributes methods
@@ -247,6 +267,14 @@ class DG_PY_FOFBTool(Device):
         return FofbTool.__version__
         # PROTECTED REGION END #    //  DG_PY_FOFBTool.FofbToolVersion_read
 
+    def read_logs(self):
+        # PROTECTED REGION ID(DG_PY_FOFBTool.logs_read) ENABLED START #
+        """Return the logs attribute."""
+        with open(self.logfilepath, 'r') as fp:
+            lines = fp.readlines()
+        return [l.replace('\n','') for l in lines[:-100:-1]]
+        # PROTECTED REGION END #    //  DG_PY_FOFBTool.logs_read
+
     # --------
     # Commands
     # --------
@@ -320,6 +348,7 @@ class DG_PY_FOFBTool(Device):
         """
 
         self.info_stream("Stopping all")
+        self.d_status["nodes"]="FofbNode: stopping"
 
         self.debug_stream("Stopping combpm and comlbp")
         for cn in self.tangopath_cellnode:
@@ -331,6 +360,7 @@ class DG_PY_FOFBTool(Device):
             FofbTool.Operation.stop_ccn(cn)
             FofbTool.Operation.reset_ccn(cn)
 
+        self.d_status["nodes"]="FofbNode: stopped"
 
         # PROTECTED REGION END #    //  DG_PY_FOFBTool.stop
 
@@ -344,6 +374,7 @@ class DG_PY_FOFBTool(Device):
         :return:None
         """
         self.info_stream("Starting all")
+        self.d_status["nodes"]="FofbNode: starting"
 
         if self._include_lbp:
             self.debug_stream("Starting comlbp")
@@ -361,6 +392,8 @@ class DG_PY_FOFBTool(Device):
             FofbTool.Operation.start_ccn(cn)
         FofbTool.Operation.start_ccn(self.tangopath_centralnode)
 
+        self.d_status["nodes"]="FofbNode: started"
+
         # PROTECTED REGION END #    //  DG_PY_FOFBTool.start
 
     @command(
@@ -373,16 +406,16 @@ class DG_PY_FOFBTool(Device):
         :return:None
         """
         db = tango.Database()
+        self.d_status["synchronize"]="Synchronize: starting"
 
         self.debug_stream("Building list form FREE PROPERTIES")
         bpmidlist = [(int(n.split(':')[0]), n.split(':')[2]) for n in db.get_property("FOFB", "bpmlist")['bpmlist'] if 'LIBERA' in n]
         tlocal = [n.split(':')[2] for n in db.get_property("FOFB", 'TimingBoardList')['TimingBoardList'] if "LOCAL" in n]
         lbpevrx = db.get_property("FOFB", 'LBPEVRX')['LBPEVRX']
 
-        P = multiprocessing.Process(target=FofbTool.Operation.sync_bpm,
-               args=(bpmidlist, lbpevrx, tlocal, self.tangopath_centraltiming))
+        FofbTool.Operation.sync_bpm(bpmidlist, lbpevrx, tlocal, self.tangopath_centraltiming)
+        self.d_status["synchronize"]="Synchronize: done"
 
-        P.start()
         # PROTECTED REGION END #    //  DG_PY_FOFBTool.sync
 
     @command(
diff --git a/DG_PY_FOFBTool/DG_PY_FOFBTool.xmi b/DG_PY_FOFBTool/DG_PY_FOFBTool.xmi
index b252b0998b336cbfba4375666674bdc682694907..20dda8117dbcc16fe19dff5d7997885040c36b28 100644
--- a/DG_PY_FOFBTool/DG_PY_FOFBTool.xmi
+++ b/DG_PY_FOFBTool/DG_PY_FOFBTool.xmi
@@ -61,6 +61,10 @@
       <type xsi:type="pogoDsl:IntVectorType"/>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </deviceProperties>
+    <deviceProperties name="loglevel" mandatory="true" description="">
+      <type xsi:type="pogoDsl:StringType"/>
+      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
+    </deviceProperties>
     <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0">
       <argin description="none">
         <type xsi:type="pogoDsl:VoidType"/>
@@ -140,6 +144,14 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
+    <attributes name="logs" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="1024" maxY="" allocReadMember="true" isDynamic="false">
+      <dataType xsi:type="pogoDsl:StringType"/>
+      <changeEvent fire="false" libCheckCriteria="false"/>
+      <archiveEvent fire="false" libCheckCriteria="false"/>
+      <dataReadyEvent fire="false" libCheckCriteria="true"/>
+      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
+      <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
+    </attributes>
     <preferences docHome="../doc/doc_html" makefileHome="$(TANGO_HOME)"/>
   </classes>
 </pogoDsl:PogoSystem>