]> git.ipfire.org Git - nitsi.git/blobdiff - src/nitsi/serial_connection.py
Sort imports: part 1
[nitsi.git] / src / nitsi / serial_connection.py
index f2f14bf8a51a96cebde1e3393d96a8aecfb167b9..35683161eebcb201e2cc2eb205de0b423fde7eeb 100644 (file)
@@ -1,24 +1,37 @@
 #!/usr/bin/python3
-import serial
 
-import re
+import logging
 import os
-
-from time import sleep
+import re
+import serial
 import sys
-import logging
+import time
+
+from .logger import TestFormatter
 
 logger = logging.getLogger("nitsi.serial")
 
 class serial_connection():
-    def __init__(self, device, username=None):
+    def __init__(self, device, username=None, log_file=None, name=None, log_start_time=None, longest_machine_name=10):
         self.buffer = b""
         self.back_at_prompt_pattern =  None
         self.username = username
-        self.log = logger.getChild(os.path.basename(device))
+        self.name = name
+        self.log_file = log_file
+        self.log = logger.getChild(name)
         self.log.setLevel(logging.INFO)
         self.con = serial.Serial(device)
 
+        self.log_output = self.log.getChild("output")
+        log_file_handler = logging.FileHandler(self.log_file)
+        log_file_handler.setLevel(logging.INFO)
+        log_file_handler.terminator = ""
+        formatter = TestFormatter(name=self.name,
+                                    start_time=log_start_time,
+                                    longest_machine_name=longest_machine_name)
+        log_file_handler.setFormatter(formatter)
+        self.log_output.addHandler(log_file_handler)
+
     def read(self, size=1):
         if len(self.buffer) >= size:
             # throw away first size bytes in buffer
@@ -80,6 +93,7 @@ class serial_connection():
 
     def log_console_line(self, line):
         self.log.debug("Get in function log_console_line()")
+        self.log_output.info(line)
         sys.stdout.write(line)
 
     @property
@@ -198,4 +212,4 @@ class serial_connection():
         data = data.decode().replace("END: ", "")
         self.log.debug(data)
         self.log.debug(data.strip())
-        return data.strip()
\ No newline at end of file
+        return data.strip()