diff --git a/classes/panelLogs_historiquePistes.py b/classes/panelLogs_historiquePistes.py
new file mode 100644
index 0000000000000000000000000000000000000000..2169f8a3e6145f12c5a386a090b79a38df6d091f
--- /dev/null
+++ b/classes/panelLogs_historiquePistes.py
@@ -0,0 +1,243 @@
+"""
+Class PanelLogs
+"""
+
+from tkinter import ttk, Scrollbar, PanedWindow, Text
+import sys, subprocess , os, io
+import contextlib
+from tkinter.constants import INSERT 
+
+from pyAmakIHM.classes.panelCommandes import PanelCommandes
+
+
+class PanelLogs(Text):
+    """
+    Class PanelLogs
+    """
+
+    def __init__(
+            self,
+            root : 'Tk'
+    ) -> None :
+
+        super().__init__(root,bg='white')
+        
+        """
+        p = sub.Popen('./script',stdout=sub.PIPE,stderr=sub.PIPE) output, errors = p.communicate()
+        """
+
+        self.__root = root
+        
+        #self.__affichage = ttk.Treeview(self, columns = ("agent"))
+        self.__affichage=Text(self,height=300 , width=600)
+   
+        self.__affichage.insert ('20.0', "end" )
+    #    self.__affichage.place(height=300,width=600)
+        self.__affichage.pack()
+
+        self.__affichage.pack(fill='both',expand='yes')
+
+        #self.__affichage.place(height=400 , width=600)
+        """
+        , relx=0.2575
+        
+        self.__panelGraphiques = []
+        """
+        self.__affichageScroll = Scrollbar(self.__affichage,orient="vertical",command=self.__affichage.yview)
+        self.__affichageScroll2 = Scrollbar(self.__affichage,orient="horizontal",command=self.__affichage.xview)
+
+        self.__affichage.configure(yscrollcommand=self.__affichageScroll.set)
+        self.__affichage.configure(yscrollcommand=self.__affichageScroll2.set)
+
+        self.__affichageScroll.pack(side='right',fill='y')
+        self.__affichageScroll2.pack(side='bottom',fill='x')
+
+
+    def getText(self) -> Text :
+        return self.__affichage
+
+
+    def logsDisplay(self, message : str) -> None:
+        place=self.getText()
+        place.insert("end", message)
+
+    
+
+        """
+        f=open("fichier.txt", 'w')
+        g=open("fichier.txt", 'w')
+        sys.stdout=f
+        sys.stderr=g
+        f.close()
+        g.close()
+        
+        os.system("touch fichier.txt")
+
+        os.system("python main.py <  fichier.txt")
+        
+
+        with open("fichier.txt", 'w') as f:
+            contextlib.redirect_stdout(f)
+            contextlib.redirect_stderr(f)
+        
+
+        x=open("fichier.txt", "r")
+        log= x.readline()
+        print(log)
+        x.close()
+
+        #os.system("rm fichier.txt")
+
+        self.__affichage.insert ('21.0', log)
+
+        
+
+        self.__affichage.column ( "#0" , width = 100 , minwidth = 10 , stretch = True )
+        self.__affichage.column ( "agent" , width = 500 , minwidth = 100 , stretch = True)
+
+        self.__affichage.heading ( "#0" , text = "Numero cycle" , anchor = "w" )
+        self.__affichage.heading ( "agent" , text = "Comportement agent" , anchor = "w" )
+        
+        self.__affichage.insert ( "" , 1 , "L01" , text = "Cycle 0" , values = (" "))
+
+        self.__affichage.insert ( "L01" , "end" , "L0101" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( 'Je te vois et je suis l agent 3 \n Je décide \n J agis ' ) )
+        self.__affichage.insert ( "L01" , "end" , "L0102" , text = " " , values = ( "Je te vois et je suis l'agent 1 \n Je décide \n J'agis " ) )
+
+
+
+        self.__affichage.insert ( "" , 2 , "L02" , text = "Cycle 1"  , values = (" "))
+
+        self.__affichage.insert ( "L02" , "end" , "L0201" , text = " " , values = ( "Je te vois et je suis l'agent 2 \n Je décide \n J'agis " ) )
+
+        self.__affichage.insert ( "L02" , "end" , "L0202" , text = " " , values = ( "Je te vois et je suis l'agent 1 \n Je décide \n J'agis " ) )
+        self.__affichage.insert ( "L02" , "end" , "L0203" , text = " " , values = ( "Je te vois et je suis l'agent 3 \n Je décide \n J'agis " ) )
+
+
+        self.__affichage.insert ( "" , 3 , "L03" , text = "Cycle 0" , values = (" "))
+
+        self.__affichage.insert ( "L03" , "end" , "L0301" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0302" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0303" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0304" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0305" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0306" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0307" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0308" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0309" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0310" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0311" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0312" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0313" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0314" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0315" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0316" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0317" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0318" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0319" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0320" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0321" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0322" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0323" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0324" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0325" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0326" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0327" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0328" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0329" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0330" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0331" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0332" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0333" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0334" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0335" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0336" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+        self.__affichage.insert ( "L03" , "end" , "L0337" , text = "Je te vois et je suis l agent 3 Je décide  J agis" , values = ( ' ' ) )
+
+
+        self.__affichage.insert("" ,1,"L"+str(j), text="dfhk,")
+
+        "L"+str(j)
+        
+        if (sys.stderr  != ""):
+            self.__affichage.insert( "L"+str(j),"end" , text=sys.stderr)
+            j=j+1
+        else:            
+        
+        sys.stdout = StdoutRedirector(self)
+        
+        def ls_proc():
+            return Popen(['ls'], stdout=PIPE)
+
+        with ls_proc() as p:
+            if p.stdout:
+                for line in p.stdout:
+                    self.__affichage.insert("",j,text=sys.stdout,values = (" ") )
+                    j+1
+            if p.stderr:
+                for line in p.stderr:
+                    self.__affichage.insert("",j,text= sys.stderr, values = (" "))
+                    j+1
+        
+
+
+
+        sys.stdout = redirect_stdout(self)
+
+        sys.stderr = redirect_stderr(self)
+
+        process the output of your_CLI_program
+        
+        
+    def redirect(module, method):
+    '''Redirects stdout from the method or function in module as a string.'''
+        proc = subprocess.Popen(["python", "-c","import " + module + ";" + module + "." + method + "()"], stdout=subprocess.PIPE)
+        out = proc.communicate()[0]
+        return out.decode('unicode_escape')
+
+        
+        #with open((sys.stdout).name) as x:
+        with open((io.stdout).name) as x:
+            read_data=x.read
+            print(type(read_data))
+            #self.__affichage.insert("end",str(open(sys.stderr)))
+    
+    
+
+        with open(str(self.__affichage), 'w') as f:
+            with contextlib.redirect_stdout(f):
+                print('Hello, World')
+
+        
+
+        stream = io.StringIO()
+        write_to_stream = contextlib.redirect_stdout(stream)
+
+        x=sys.stdout()
+        #print(type(write_to_stream))
+        with write_to_stream:
+            print("This is written to the stream rather than stdout")
+            self.__affichage.insert ( "end", (sys.decode(write_to_stream )))
+
+#            with write_to_stream:
+#                print("This is also written to the stream")
+        print("This is written directly to stdout")
+        print(stream.getvalue())
+        
+        print(type(stream))
+        print(type(stream.getvalue()))
+        
+        p = subprocess.Popen('py','/home/aurelie/Documents/pyamak-noyau/pyAmakCore/tests/memory_leak/main.py' , stdout=subprocess.PIPE ,stderr=subprocess.PIPE )
+
+        while True:
+            line = sys.stdout.readline()
+            if not line:
+                break
+  #the real code does filtering here
+            print ("test:", line.rstrip())
+
+        """
+        
+
+
+    #def ls_proc(root):
+    #   return subprocess.Popen(['/home/aurelie/Documents/example/ant_example/antsLaunchExample.py'], stdout=subprocess.PIPE)