diff --git a/t/annotation/malt_dependency.t b/t/annotation/malt_dependency.t
index cbbbf27..44a4a11 100644
--- a/t/annotation/malt_dependency.t
+++ b/t/annotation/malt_dependency.t
@@ -3,15 +3,6 @@
 use warnings;
 use KorAP::XML::Annotation::Malt::Dependency;
 use utf8;
-use Log::Log4perl;
-
-Log::Log4perl->init({
-  'log4perl.rootLogger' => 'ERROR, STDERR',
-  'log4perl.appender.STDERR' => 'Log::Log4perl::Appender::ScreenColoredLevels',
-  'log4perl.appender.STDERR.layout' => 'PatternLayout',
-  'log4perl.appender.STDERR.layout.ConversionPattern' => '[%r] %F %L %c - %m%n'
-});
-
 use Test::More;
 use Scalar::Util qw/weaken/;
 use Data::Dumper;
diff --git a/t/annotation/mdp_dependency.t b/t/annotation/mdp_dependency.t
index 2fd341f..f7f29a2 100644
--- a/t/annotation/mdp_dependency.t
+++ b/t/annotation/mdp_dependency.t
@@ -2,16 +2,7 @@
 use strict;
 use warnings;
 use utf8;
-use Log::Log4perl;
 use Data::Dumper;
-
-Log::Log4perl->init({
-  'log4perl.rootLogger' => 'ERROR, STDERR',
-  'log4perl.appender.STDERR' => 'Log::Log4perl::Appender::ScreenColoredLevels',
-  'log4perl.appender.STDERR.layout' => 'PatternLayout',
-  'log4perl.appender.STDERR.layout.ConversionPattern' => '[%r] %F %L %c - %m%n'
-});
-
 use File::Basename 'dirname';
 use File::Spec::Functions qw/catdir catfile/;
 use Test::More;
diff --git a/t/real/agd.t b/t/real/agd.t
index ebb658b..c1f8cc5 100644
--- a/t/real/agd.t
+++ b/t/real/agd.t
@@ -3,7 +3,6 @@
 use Test::More;
 use Data::Dumper;
 use JSON::XS;
-use Log::Log4perl;
 use utf8;
 
 if ($ENV{SKIP_REAL}) {
@@ -14,15 +13,6 @@
 
 my $t = Benchmark->new;
 
-# Initialize log4perl object
-#Log::Log4perl->init({
-#  'log4perl.rootLogger' => 'TRACE, STDERR',
-#  'log4perl.appender.STDERR' => 'Log::Log4perl::Appender::ScreenColoredLevels',
-#  'log4perl.appender.STDERR.layout' => 'PatternLayout',
-#  'log4perl.appender.STDERR.layout.ConversionPattern' => '[%r] %F %L %c - %m%n'
-#});
-
-
 use File::Basename 'dirname';
 use File::Spec::Functions 'catdir';
 
diff --git a/t/real/bzk.t b/t/real/bzk.t
index 8636fb9..8c0d16e 100644
--- a/t/real/bzk.t
+++ b/t/real/bzk.t
@@ -3,7 +3,6 @@
 use Test::More;
 use Data::Dumper;
 use JSON::XS;
-use Log::Log4perl;
 
 if ($ENV{SKIP_REAL}) {
   plan skip_all => 'Skip real tests';
@@ -16,13 +15,6 @@
 use utf8;
 use lib 'lib', '../lib';
 
-#Log::Log4perl->init({
-#  'log4perl.rootLogger' => 'DEBUG, STDERR',
-#  'log4perl.appender.STDERR' => 'Log::Log4perl::Appender::ScreenColoredLevels',
-#  'log4perl.appender.STDERR.layout' => 'PatternLayout',
-#  'log4perl.appender.STDERR.layout.ConversionPattern' => '[%r] %F %L %c - %m%n'
-#});
-
 use File::Basename 'dirname';
 use File::Spec::Functions 'catdir';
 
diff --git a/t/real/ngafc.t b/t/real/ngafc.t
index 04eb4a1..95eabc4 100644
--- a/t/real/ngafc.t
+++ b/t/real/ngafc.t
@@ -13,7 +13,6 @@
 use Test::More;
 use Data::Dumper;
 use JSON::XS;
-use Log::Log4perl;
 
 if ($ENV{SKIP_REAL}) {
   plan skip_all => 'Skip real tests';
diff --git a/t/real/rei.t b/t/real/rei.t
index ab3df72..6593258 100644
--- a/t/real/rei.t
+++ b/t/real/rei.t
@@ -3,7 +3,6 @@
 use Test::More;
 use Data::Dumper;
 use JSON::XS;
-use Log::Log4perl;
 
 if ($ENV{SKIP_REAL}) {
   plan skip_all => 'Skip real tests';
@@ -15,14 +14,6 @@
 use File::Basename 'dirname';
 use File::Spec::Functions 'catdir';
 
-# Initialize log4perl object
-Log::Log4perl->init({
-  'log4perl.rootLogger' => 'ERROR, STDERR',
-  'log4perl.appender.STDERR' => 'Log::Log4perl::Appender::ScreenColoredLevels',
-  'log4perl.appender.STDERR.layout' => 'PatternLayout',
-  'log4perl.appender.STDERR.layout.ConversionPattern' => '[%r] %F %L %c - %m%n'
-});
-
 use_ok('KorAP::XML::Krill');
 
 my $path = catdir(dirname(__FILE__), 'corpus','REI','BNG','00128');
diff --git a/t/real/rwk.t b/t/real/rwk.t
index 7e5642d..efc0b94 100644
--- a/t/real/rwk.t
+++ b/t/real/rwk.t
@@ -3,7 +3,6 @@
 use Test::More;
 use Data::Dumper;
 use JSON::XS;
-use Log::Log4perl;
 
 if ($ENV{SKIP_REAL}) {
   plan skip_all => 'Skip real tests';
@@ -15,14 +14,6 @@
 use File::Basename 'dirname';
 use File::Spec::Functions 'catdir';
 
-# Initialize log4perl object
-Log::Log4perl->init({
-  'log4perl.rootLogger' => 'ERROR, STDERR',
-  'log4perl.appender.STDERR' => 'Log::Log4perl::Appender::ScreenColoredLevels',
-  'log4perl.appender.STDERR.layout' => 'PatternLayout',
-  'log4perl.appender.STDERR.layout.ConversionPattern' => '[%r] %F %L %c - %m%n'
-});
-
 use_ok('KorAP::XML::Krill');
 
 my $path = catdir(dirname(__FILE__), 'corpus','REDEW','DOC1','00000');
@@ -200,16 +191,6 @@
 
 is(substr($output->{data}->{text}, 0, 100), 'Er hatte den Kopf weit nach rückwärts gebeugt, seine langen schwarzen Haare lockten sich über den li', 'Primary Data');
 
-use Log::Log4perl;
-
-Log::Log4perl->init({
-  'log4perl.rootLogger' => 'WARN, STDERR',
-  'log4perl.appender.STDERR' => 'Log::Log4perl::Appender::ScreenColoredLevels',
-  'log4perl.appender.STDERR.layout' => 'PatternLayout',
-  'log4perl.appender.STDERR.layout.ConversionPattern' => '[%r] %F %L %c - %m%n'
-});
-
-
 # Add annotations
 ok($tokens->add('RWK', 'Morpho'));
 ok($tokens->add('RWK', 'Structure'));
@@ -286,16 +267,6 @@
 
 is(substr($output->{data}->{text}, 0, 100), 'Er hatte den Kopf weit nach rückwärts gebeugt, seine langen schwarzen Haare lockten sich über den li', 'Primary Data');
 
-use Log::Log4perl;
-
-Log::Log4perl->init({
-  'log4perl.rootLogger' => 'WARN, STDERR',
-  'log4perl.appender.STDERR' => 'Log::Log4perl::Appender::ScreenColoredLevels',
-  'log4perl.appender.STDERR.layout' => 'PatternLayout',
-  'log4perl.appender.STDERR.layout.ConversionPattern' => '[%r] %F %L %c - %m%n'
-});
-
-
 # Add annotations
 ok($tokens->add('RWK', 'Morpho'));
 ok($tokens->add('RWK', 'Structure'));
diff --git a/t/real/wdd.t b/t/real/wdd.t
index 57dcbc7..779a44e 100644
--- a/t/real/wdd.t
+++ b/t/real/wdd.t
@@ -1,4 +1,4 @@
-#use strict;
+use strict;
 use warnings;
 use Test::More;
 use Data::Dumper;
@@ -293,14 +293,6 @@
 );
 ok($tokens, 'Token Object is fine');
 
-# Initialize log4perl object
-Log::Log4perl->init({
-  'log4perl.rootLogger' => 'DEBUG, STDERR',
-  'log4perl.appender.STDERR' => 'Log::Log4perl::Appender::ScreenColoredLevels',
-  'log4perl.appender.STDERR.layout' => 'PatternLayout',
-  'log4perl.appender.STDERR.layout.ConversionPattern' => '[%r] %F %L %c - %m%n'
-});
-
 ok(!$tokens->parse, 'Token parsing is fine');
 
 
