diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py
index f1954d1..b8182f5 100644
--- a/src/osmo_gsm_tester/core/log.py
+++ b/src/osmo_gsm_tester/core/log.py
@@ -46,6 +46,9 @@
 C_BUS = 'bus'
 C_DEFAULT = '---'
 
+FILE_LOG = 'log'
+FILE_LOG_BRIEF = 'log_brief'
+
 LOG_CTX_VAR = '_log_ctx_'
 
 def dbg(*messages, _origin=None, _category=None, _src=None, **named_items):
diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py
index 7e03b6c..47e1f42 100644
--- a/src/osmo_gsm_tester/core/test.py
+++ b/src/osmo_gsm_tester/core/test.py
@@ -46,7 +46,7 @@
         self.duration = 0
         self.fail_type = None
         self.fail_message = None
-        self.log_target = None
+        self.log_targets = []
         self._report_stdout = None
 
     def module_name(self):
@@ -62,7 +62,8 @@
     def run(self):
         testenv_obj = None
         try:
-            self.log_target = log.FileLogTarget(self.get_run_dir().new_child('log')).set_all_levels(log.L_DBG).style_change(trace=True)
+            self.log_targets = [log.FileLogTarget(self.get_run_dir().new_child(log.FILE_LOG)).set_all_levels(log.L_DBG).style_change(trace=True),
+                                log.FileLogTarget(self.get_run_dir().new_child(log.FILE_LOG_BRIEF)).style_change(src=False, all_origins_on_levels=(log.L_ERR, log.L_TRACEBACK))]
             log.large_separator(self.suite_run.trial().name(), self.suite_run.name(), self.name(), sublevel=3)
             self.status = Test.UNKNOWN
             self.start_timestamp = time.time()
@@ -95,8 +96,8 @@
         finally:
             if testenv_obj:
                 testenv_obj.stop()
-            if self.log_target:
-                self.log_target.remove()
+            for log_tgt in self.log_targets:
+                log_tgt.remove()
 
     def name(self):
         l = log.get_line_for_src(self.path)
@@ -137,9 +138,9 @@
         # If test overwrote the text, provide it:
         if self._report_stdout is not None:
             return self._report_stdout
-        # Otherwise vy default provide the entire test log:
-        if self.log_target is not None and self.log_target.log_file_path() is not None:
-            with open(self.log_target.log_file_path(), 'r') as myfile:
+        # Otherwise vy default provide the entire test brief log:
+        if len(self.log_targets) == 2 and self.log_targets[1].log_file_path() is not None:
+            with open(self.log_targets[1].log_file_path(), 'r') as myfile:
                 return myfile.read()
         else:
             return 'test log file not available'
diff --git a/src/osmo_gsm_tester/core/trial.py b/src/osmo_gsm_tester/core/trial.py
index 001421f..3787726 100644
--- a/src/osmo_gsm_tester/core/trial.py
+++ b/src/osmo_gsm_tester/core/trial.py
@@ -32,8 +32,6 @@
 FILE_CHECKSUMS = 'checksums.md5'
 TIMESTAMP_FMT = '%Y-%m-%d_%H-%M-%S'
 FILE_LAST_RUN = 'last_run'
-FILE_LOG = 'log'
-FILE_LOG_BRIEF = 'log_brief'
 
 class Trial(log.Origin):
     UNKNOWN = 'UNKNOWN'
@@ -71,12 +69,12 @@
         '''add a log target to log to the run dir, write taken marker, log a
         starting separator.'''
         run_dir = self.get_run_dir()
-        detailed_log = run_dir.new_child(FILE_LOG)
+        detailed_log = run_dir.new_child(log.FILE_LOG)
         self.log_targets = [
             log.FileLogTarget(detailed_log)
               .set_all_levels(log.L_DBG)
               .style_change(trace=True),
-            log.FileLogTarget(run_dir.new_child(FILE_LOG_BRIEF))
+            log.FileLogTarget(run_dir.new_child(log.FILE_LOG_BRIEF))
               .style_change(src=False, all_origins_on_levels=(log.L_ERR, log.L_TRACEBACK))
             ]
         log.large_separator(self.name(), sublevel=1)
