diff --git a/lib/SLUB/LZA/Rosetta/TA.pm b/lib/SLUB/LZA/Rosetta/TA.pm
index 108e42810dddee0269b30e67aa09f803d25b8e9f..03e6f7e3de7469a4f80348c26971d07cc634fd2b 100644
--- a/lib/SLUB/LZA/Rosetta/TA.pm
+++ b/lib/SLUB/LZA/Rosetta/TA.pm
@@ -157,7 +157,7 @@ sub helper_scan_log {
         if ($file =~ m/\.gz$/) {
             $fh = IO::Zlib->new("$file", "rb");
         } else {
-            $fh = $file->openr;
+            $fh = $file->filehandle;
         }
         if (defined $fh) {
             $fh_processing->( $fh );
@@ -170,6 +170,9 @@ sub helper_scan_log {
 sub trace_log {
     my $with_trace=shift;
     my $with_color=shift;
+    my $date_rx=shift;
+    my $level_rx=shift;
+    my $match_rx=shift;
     my $output_filter=shift;
     my $directory = path($config{logdir});
     my $deposit_id;
@@ -184,10 +187,10 @@ sub trace_log {
     # 1. ... | processing {originalDirName=eb9c1924-4bab-11ec-baca-f69de10fbd49, depositId=422950, ... userName=Goobi_SMA, SIP 422438, producerType=TRUSTED, producerGroup=PG_Goobi, contentStructure=METS, materialFlowSR=0, producerId=264981, contentStructureId=264951, converter_class_name=com.exlibris.dps.deposit.converters.METSCSConverter, retentionPoliciesId=NO_RETENTION} from work queue SIP_LOADING_WORK_QUEUE finished
     # 2. ...     enqueued {originalDirName=d2cb9509-4bad-11ec-baca-b925eea982a1, depositId=422958, ... userName=Goobi_SMA, sipId=422446, producerType=TRUSTED, producerGroup=PG_Goobi, contentStructure=METS, materialFlowSR=0, producerId=264981, contentStructureId=264951, converter_class_name=com.exlibris.dps.deposit.converters.METSCSConverter, retentionPoliciesId=NO_RETENTION} on work queue V2SL_shr00.SIP_LOADING_WORK_QUEUE
     # 3. ... SIP 13156, Deposit Activity ID=17589Properties
-
     my $sip_rx = qr/(SIP |sipId=)/;
-    my $date_rx = qr/\d{4}-\d\d-\d\d \d\d:\d\d:\d\d,\d\d\d/;
-    my $pre_rx = qr/$date_rx INFO  .*/;
+    my $datetime_rx = qr/$date_rx \d\d:\d\d:\d\d,\d\d\d/;
+    my $pre_rx = qr/$datetime_rx INFO  /;
+
     my $line_rx1 = Regexp::Optimizer->new->optimize(qr{^$pre_rx.*(originalDirName=|depositId=|$sip_rx)$searchid});
     my $line_rx2 = Regexp::Optimizer->new->optimize(qr{^$pre_rx.*(SIP |Deposit Activity ID=)$searchid});
     my $line_rx3 = Regexp::Optimizer->new->optimize(qr{^$pre_rx.*Loaded \d+ files for: .*$searchid});
@@ -203,7 +206,6 @@ sub trace_log {
         $line_rx4 = Regexp::Optimizer->new->optimize(qr{^$pre_rx.*Representation $searchid IE \d+ Copy ID: \d+});
     }
 
-#    my $search_rxo = Regexp::Optimizer->new->optimize(qr/^$date_rx [^ ]* $level_rx  (.*?)$match_rx(.*?)$/);
     my $fh_processing_stage1 = sub {
         my $fh = shift;
         while(<$fh>) {
@@ -211,21 +213,25 @@ sub trace_log {
                 (defined $sip_id and defined $deposit_id and defined $deposit_dir)
                     or (defined $ie_pid and defined $rep_id)
             ) { last; }
-            if (! m/^$pre_rx/) {next;}
-            if (! m/$searchid/) {next;}
+            if (!m/^$pre_rx/) {
+                next;
+            }
+            if (!m/$searchid/) {
+                next;
+            }
             chomp;
             if ( m/$line_rx1/ ) {
                 if (!defined $sip_id      and m/$sip_rx(\d{6}),/) { $sip_id = $2; }
                 if (!defined $deposit_dir and m/originalDirName=([^,]*),/) { $deposit_dir = $1; }
-                if (!defined $deposit_id  and m/depositId=(\d{6}),/) { $deposit_id = $1;}
+                if (!defined $deposit_id  and m/depositId=(\d+),/) { $deposit_id = $1;}
             } elsif (m/$line_rx2/) {
                 if (!defined $sip_id and m/SIP (\d{6})/) { $sip_id = $1;}
-                if (!defined $deposit_id and m/Deposit Activity ID=(\d{6})/) { $deposit_id = $1;}
+                if (!defined $deposit_id and m/Deposit Activity ID=(\d+)/) { $deposit_id = $1;}
             } elsif (m/$line_rx3/) {
                 if (!defined $ie_pid and m/Loaded \d+ files for: REP\d+ \((IE\d+)/) { $ie_pid = $1;}
                 if (!defined $rep_id and m/Loaded \d+ files for: (REP\d+)/) { $rep_id = $1;}
             } elsif (m/$line_rx4/) {
-                my $rx = qr/Representation (\d{6}) IE (\d{6})/;
+                my $rx = qr/Representation (\d+) IE (\d+)/;
                 if (!defined $ie_pid and m/$rx/) { $ie_pid = $2;}
                 if (!defined $rep_id and m/$rx/) { $rep_id = $1;}
             }
@@ -242,13 +248,21 @@ sub trace_log {
     if ($with_color) {
         $output_filter = sub {colorize_trace($_[0], $deposit_dir, $deposit_id, $sip_id, $ie_pid, $rep_id)};
     }
+    my $search_rxo = Regexp::Optimizer->new->optimize(qr/^$date_rx [^ ]* $level_rx  (.*?)$match_rx(.*?)$/);
+    no warnings;
+    my $nextline_rx1= Regexp::Optimizer->new->optimize(qr{originalDirName=$deposit_dir|(depositID|Deposit Activity ID)[= ]$deposit_id|(sipId|SIP[= ]?)$sip_id});
+    my $nextline_rx2=Regexp::Optimizer->new->optimize(qr{IE[ ]?$ie_pid|REP[ ]?$rep_id});
+    use warnings;
     my $fh_processing_stage2 = sub {
         my $fh = shift;
-        no warnings;
-        my $nextline_rx1= Regexp::Optimizer->new->optimize(qr{originalDirName=$deposit_dir|(depositID|Deposit Activity ID)[= ]$deposit_id|(sipId|SIP[= ]?)$sip_id});
-        my $nextline_rx2=Regexp::Optimizer->new->optimize(qr{IE[ ]?$ie_pid|REP[ ]?$rep_id});
-        use warnings;
         while(<$fh>) {
+            if (!m/^$date_rx/) {
+                next;
+            }
+            if (! m/$search_rxo/) {
+                #print "no match for '$_'";
+                next;
+            }
             if (
                 (
                     defined $deposit_dir