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)
diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py
index cf910ea..ec85c45 100644
--- a/src/osmo_gsm_tester/core/test.py
+++ b/src/osmo_gsm_tester/core/test.py
@@ -165,4 +165,22 @@
         else:
             return 'test log file not available'
 
+    def log_file(self):
+        for lt in self.log_targets:
+            if isinstance(lt, log.FileLogTarget):
+                return lt
+        return None
+
+    def get_log_mark(self):
+        lt = self.log_file()
+        if lt is None:
+            return 0
+        return lt.get_mark()
+
+    def get_log_output(self, since_mark=0):
+        lt = self.log_file()
+        if lt is None:
+            return ''
+        return lt.get_output(since_mark)
+
 # vim: expandtab tabstop=4 shiftwidth=4
