Replaced Log4perl with Log::Any

Change-Id: I0837fb628fcfffef1edc5e497819b6f6966cf292
diff --git a/lib/KorAP/XML/Batch/File.pm b/lib/KorAP/XML/Batch/File.pm
index 5c1bea9..297fc06 100644
--- a/lib/KorAP/XML/Batch/File.pm
+++ b/lib/KorAP/XML/Batch/File.pm
@@ -1,6 +1,7 @@
 package KorAP::XML::Batch::File;
 use KorAP::XML::Krill;
-use Mojo::Log;
+# use Mojo::Log;
+use Log::Any qw($log);
 use IO::Compress::Gzip;
 use IO::File;
 use strict;
@@ -18,7 +19,7 @@
     foundry         => $param{foundry}   || 'Base',
     layer           => $param{layer}     || 'Tokens',
     anno            => $param{anno}      || [[]],
-    log             => $param{log}       || Mojo::Log->new(level => 'fatal'),
+    log             => $param{log}       || $log,
     koral           => $param{koral},
     non_word_tokens => $param{non_word_tokens},
     non_verbal_tokens => $param{non_verbal_tokens},
@@ -193,7 +194,7 @@
 
 =item log
 
-A L<Mojo::Log> compatible log object.
+A L<Log::Any> compatible log object.
 
 =item gzip
 
diff --git a/lib/KorAP/XML/Krill.pm b/lib/KorAP/XML/Krill.pm
index 58d8c05..17741f1 100644
--- a/lib/KorAP/XML/Krill.pm
+++ b/lib/KorAP/XML/Krill.pm
@@ -8,8 +8,7 @@
 use Try::Tiny;
 use KorAP::XML::Document::Primary;
 use KorAP::XML::Tokenizer;
-use Log::Log4perl;
-use KorAP::XML::Log;
+use Log::Any qw($log);
 use Cache::FastMmap;
 use Mojo::DOM;
 use File::Spec::Functions qw/catdir catfile catpath splitdir splitpath rel2abs/;
@@ -17,8 +16,7 @@
 
 our @EXPORT_OK = qw(get_file_name get_file_name_from_glob);
 
-
-our $VERSION = '0.41';
+our $VERSION = '0.42';
 
 has 'path';
 has [qw/text_sigle doc_sigle corpus_sigle/];
@@ -26,10 +24,6 @@
 has 'cache';
 
 has log => sub {
-  if(Log::Log4perl->initialized()) {
-    state $log = Log::Log4perl->get_logger(__PACKAGE__);
-  };
-  state $log = KorAP::XML::Log->new;
   return $log;
 };
 
@@ -64,7 +58,7 @@
 
   # No primary data found
   unless (-e $data_xml) {
-    $self->log->warn($unable . ' - no data.xml found');
+    $log->warn($unable . ' - no data.xml found');
     $error = 1;
   }
 
@@ -80,14 +74,14 @@
       $rt = xml2hash($file, text => '#text', attr => '-')->{raw_text};
 
     } catch  {
-      $self->log->warn($unable);
+      $log->warn($unable);
       $error = 1;
     };
   };
 
   return if $error;
 
-  $self->log->debug('Parse document ' . $self->path);
+  $log->debug('Parse document ' . $self->path);
 
   # Get document id and corpus id
   if ($rt && $rt->{'-docid'}) {
@@ -97,12 +91,12 @@
       $self->corpus_sigle($1);
     }
     else {
-      $self->log->warn($unable . ': ID not parseable: ' . $rt->{'-docid'});
+      $log->warn($unable . ': ID not parseable: ' . $rt->{'-docid'});
       return;
     };
   }
   else {
-    $self->log->warn($unable . ': No raw_text found or no ID');
+    $log->warn($unable . ': No raw_text found or no ID');
     return;
   };
 
@@ -116,7 +110,7 @@
   my $pd = html_unescape substr($file, $start, $end - $start);
 
   unless ($pd) {
-    $self->log->warn($unable . ': No primary data found');
+    $log->warn($unable . ': No primary data found');
     return;
   };
 
@@ -142,7 +136,7 @@
 
   if ($meta_class->can('new') || eval("require $meta_class; 1;")) {
     $meta = $meta_class->new(
-      log          => $self->log,
+      log          => $log,
       corpus_sigle => $self->corpus_sigle,
       doc_sigle    => $self->doc_sigle,
       text_sigle   => $self->text_sigle,
@@ -154,7 +148,7 @@
   };
 
   unless ($meta) {
-    $self->log->warn(
+    $log->warn(
       "Metadata object for $meta_data_type not initializable"
     );
   };
@@ -205,7 +199,7 @@
 
   # Parse tokens
   unless ($tokens->parse) {
-    $self->log->warn(
+    $log->warn(
       'Unable to tokenize ' . $self->path .
         ' with ' . $token_foundry . '#'
         . $token_layer
@@ -224,7 +218,7 @@
 sub annotate {
   my $self = shift;
   unless ($self->{tokenizer}) {
-    $self->log->warn('No tokenizer defined')
+    $log->warn('No tokenizer defined')
   }
   else {
     $self->{tokenizer}->add(@_);
@@ -294,7 +288,7 @@
 sub to_json {
   my $self = shift;
   unless ($self->{tokenizer}) {
-    $self->log->warn('No tokenizer defined');
+    $log->warn('No tokenizer defined');
     return;
   };
 
@@ -372,7 +366,7 @@
 
 =head2 log
 
-L<Log::Log4perl> object for logging.
+L<Log::Any> object for logging.
 
 =head2 path
 
diff --git a/lib/KorAP/XML/Meta/Base.pm b/lib/KorAP/XML/Meta/Base.pm
index 4a61d87..d0afe93 100644
--- a/lib/KorAP/XML/Meta/Base.pm
+++ b/lib/KorAP/XML/Meta/Base.pm
@@ -1,5 +1,6 @@
 package KorAP::XML::Meta::Base;
-use Mojo::Log;
+# use Mojo::Log;
+use Log::Any qw($log);
 use strict;
 use warnings;
 
@@ -20,7 +21,7 @@
 
 sub log {
   return $_[0]->{_log} if $_[0]->{_log};
-  $_[0]->{_log} = Mojo::Log->new;
+  $_[0]->{_log} = $log;
 };
 
 sub corpus_sigle {
diff --git a/lib/KorAP/XML/Tokenizer.pm b/lib/KorAP/XML/Tokenizer.pm
index 7e72968..3496d69 100644
--- a/lib/KorAP/XML/Tokenizer.pm
+++ b/lib/KorAP/XML/Tokenizer.pm
@@ -15,7 +15,7 @@
 use Unicode::Normalize qw/getCombinClass normalize/;
 use List::MoreUtils 'uniq';
 use JSON::XS;
-use Log::Log4perl;
+use Log::Any qw($log);
 
 # TODO 1:
 # Bei den Autoren im Index darauf achten,
@@ -40,11 +40,6 @@
 has 'error';
 
 has log => sub {
-  if (Log::Log4perl->initialized()) {
-    state $log = Log::Log4perl->get_logger(__PACKAGE__);
-    return $log;
-  };
-  state $log = KorAP::XML::Log->new;
   return $log;
 };
 
@@ -64,7 +59,7 @@
 
   unless (-e $path) {
     $self->error('Unable to load base tokenization: ' . $path);
-    $self->log->warn($self->error);
+    $log->warn($self->error);
     return;
   };
 
@@ -80,7 +75,7 @@
 
   my $old = 0;
 
-  $self->log->trace('Tokenize data ' . $self->foundry . ':' . $self->layer);
+  $log->trace('Tokenize data ' . $self->foundry . ':' . $self->layer);
 
   # TODO: Reuse the following code from Spans.pm and Tokens.pm
   my ($tokens, $error);
@@ -98,7 +93,7 @@
   } catch {
 
     $self->error('Token error in ' . $path . ($_ ? ': ' . $_ : ''));
-    $self->log->warn($self->error);
+    $log->warn($self->error);
   };
 
   return if $error;
@@ -131,7 +126,7 @@
     # Token is undefined
     unless (defined $token) {
       $self->error("Tokenization with failing offsets in $path");
-      $self->log->warn("Unable to find substring [$from-$to] in $path");
+      $log->warn("Unable to find substring [$from-$to] in $path");
       return;
     };
 
@@ -225,7 +220,7 @@
   $self->should($should);
   $self->have($have);
 
-  $self->log->debug('With a non-word quota of ' . _perc($self->should, $self->should - $self->have) . ' %');
+  $log->debug('With a non-word quota of ' . _perc($self->should, $self->should - $self->have) . ' %');
 
   return $self;
 };
@@ -298,13 +293,13 @@
   my %param = @_;
 
   unless ($self->stream) {
-    $self->log->warn(
+    $log->warn(
       'No token data available'
     );
     return;
   };
 
-  $self->log->trace(
+  $log->trace(
     ($param{skip} ? 'Skip' : 'Add').' span data '.$param{foundry}.':'.$param{layer}
   );
 
@@ -325,12 +320,12 @@
 
   my $spanarray = $spans->parse or return;
 
-  if ($self->log->is_debug) {
+  if ($log->is_debug) {
     if ($spans->should == $spans->have) {
-      $self->log->trace('With perfect alignment!');
+      $log->trace('With perfect alignment!');
     }
     else {
-      $self->log->debug('With an alignment quota of ' . _perc($spans->should, $spans->have) . ' %');
+      $log->debug('With an alignment quota of ' . _perc($spans->should, $spans->have) . ' %');
     };
   };
 
@@ -349,13 +344,13 @@
   my %param = @_;
 
   unless ($self->stream) {
-    $self->log->warn(
+    $log->warn(
       'No token data available'
     );
     return;
   };
 
-  $self->log->trace(
+  $log->trace(
     ($param{skip} ? 'Skip' : 'Add').' token data '.$param{foundry}.':'.$param{layer}
   );
   return if $param{skip};
@@ -376,15 +371,15 @@
 
   # Output some debug information
   # on token alignment
-  if ($self->log->is_debug) {
+  if ($log->is_debug) {
     if ($tokens->should == $tokens->have) {
-      $self->log->trace('With perfect alignment!');
+      $log->trace('With perfect alignment!');
     }
     else {
       my $perc = _perc(
         $tokens->should, $tokens->have, $self->should, $self->should - $self->have
       );
-      $self->log->debug('With an alignment quota of ' . $perc);
+      $log->debug('With an alignment quota of ' . $perc);
     };
   };
 
@@ -408,7 +403,7 @@
   my $layer = shift;
 
   unless ($foundry && $layer) {
-    $self->log->warn('Unable to add specific module - not enough information given!');
+    $log->warn('Unable to add specific module - not enough information given!');
     return;
   };
 
@@ -427,11 +422,11 @@
       return $retval;
     }
     else {
-      $self->log->debug('Unable to parse '.$mod);
+      $log->debug('Unable to parse '.$mod);
     };
   }
   else {
-    $self->log->warn('Unable to load '.$mod . '(' . $@ . ')');
+    $log->warn('Unable to load '.$mod . '(' . $@ . ')');
   };
 
   return;
diff --git a/lib/KorAP/XML/Tokenizer/Spans.pm b/lib/KorAP/XML/Tokenizer/Spans.pm
index 2722aec..281013e 100644
--- a/lib/KorAP/XML/Tokenizer/Spans.pm
+++ b/lib/KorAP/XML/Tokenizer/Spans.pm
@@ -1,7 +1,6 @@
 package KorAP::XML::Tokenizer::Spans;
 use strict;
 use warnings;
-use KorAP::XML::Log;
 use Data::Dumper;
 use Mojo::Base 'KorAP::XML::Tokenizer::Units';
 use Mojo::File;
@@ -9,15 +8,12 @@
 use Mojo::ByteStream 'b';
 use XML::Fast;
 use Try::Tiny;
+use Log::Any qw($log);
 
 has 'range';
 
 has 'log' => sub {
-  if(Log::Log4perl->initialized()) {
-    state $log = Log::Log4perl->get_logger(__PACKAGE__);
-  };
-  state $log = KorAP::XML::Log->new;
-  return $log;
+  $log;
 };
 
 
diff --git a/lib/KorAP/XML/Tokenizer/Tokens.pm b/lib/KorAP/XML/Tokenizer/Tokens.pm
index 50367d4..78e3f8e 100644
--- a/lib/KorAP/XML/Tokenizer/Tokens.pm
+++ b/lib/KorAP/XML/Tokenizer/Tokens.pm
@@ -6,9 +6,10 @@
 use File::Spec::Functions qw/catdir catfile/;
 use XML::Fast;
 use Try::Tiny;
+use Log::Any qw($log);
 
 has 'log' => sub {
-  Log::Log4perl->get_logger(__PACKAGE__)
+  $log;
 };
 
 sub parse {
@@ -50,7 +51,7 @@
     };
     $spans = xml2hash($file, text => '#text', attr => '-')->{layer}->{spanList};
   } catch  {
-    $self->log->warn('Span error in ' . $path . ($_ ? ': ' . $_ : ''));
+    $log->warn('Span error in ' . $path . ($_ ? ': ' . $_ : ''));
     $error = 1;
   };