implement test.get_log_output()

Retrieve a test's own logging. The aim is to provide logging belonging
to a given report fragment in the junit XML output, will be used by
upcoming test.report_fragment() feature.

Change-Id: Idfa0a45f3e6a18dd4fe692e81d732c70b5cffb76
diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py
index 7a13bdd..a573f05 100644
--- a/src/osmo_gsm_tester/core/log.py
+++ b/src/osmo_gsm_tester/core/log.py
@@ -264,6 +264,15 @@
             lines.insert(0, '')
         self.log_write_func('\n'.join(lines))
 
+    def get_mark(self):
+        # implemented in FileLogTarget
+        return 0
+
+    def get_output(self, since_mark=0):
+        # implemented in FileLogTarget
+        return ''
+
+
 def level_str(level):
     if level == L_TRACEBACK:
         return L_TRACEBACK
@@ -569,6 +578,21 @@
     def log_file_path(self):
         return self.path
 
+    def get_mark(self):
+        if self.path is None:
+            return 0
+        # return current file length
+        with open(self.path, 'r') as logfile:
+            return logfile.seek(0, 2)
+
+    def get_output(self, since_mark=0):
+        if self.path is None:
+            return ''
+        with open(self.path, 'r') as logfile:
+            if since_mark:
+                logfile.seek(since_mark)
+            return logfile.read()
+
 def run_logging_exceptions(func, *func_args, return_on_failure=None, **func_kwargs):
     try:
         return func(*func_args, **func_kwargs)