diff --git a/parser/parser-big-dft/bigdftparser/parser.py b/parser/parser-big-dft/bigdftparser/parser.py
index c53abeb27101b11f1a638f84284ad15cc02bb323..3fcc7728960257792fef5d75db688afd176130c9 100644
--- a/parser/parser-big-dft/bigdftparser/parser.py
+++ b/parser/parser-big-dft/bigdftparser/parser.py
@@ -1,11 +1,11 @@
 # Copyright 2016-2018 Lauri Himanen, Fawzi Mohamed
-# 
+#
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
 #   You may obtain a copy of the License at
-# 
+#
 #     http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 #   Unless required by applicable law or agreed to in writing, software
 #   distributed under the License is distributed on an "AS IS" BASIS,
 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,7 +17,6 @@ import re
 import logging
 import importlib
 from nomadcore.baseclasses import ParserInterface
-logger = logging.getLogger("nomad")
 
 
 class BigDFTParser(ParserInterface):
@@ -28,8 +27,21 @@ class BigDFTParser(ParserInterface):
     After the implementation has been setup, you can parse the files with
     parse().
     """
-    def __init__(self, metainfo_to_keep=None, backend=None, default_units=None, metainfo_units=None, debug=True, log_level=logging.ERROR, store=True):
-        super(BigDFTParser, self).__init__(metainfo_to_keep, backend, default_units, metainfo_units, debug, log_level, store)
+    def __init__(
+        self, metainfo_to_keep=None, backend=None, default_units=None,
+        metainfo_units=None, debug=True, logger=None, log_level=logging.ERROR,
+        store=True
+    ):
+        super(BigDFTParser, self).__init__(
+            metainfo_to_keep, backend, default_units,
+            metainfo_units, debug, log_level, store
+        )
+
+        if logger is not None:
+            self.logger = logger
+            self.logger.debug('received logger')
+        else:
+            self.logger = logging.getLogger(__name__)
 
     def setup_version(self):
         """Setups the version by looking at the output file and the version
@@ -50,7 +62,7 @@ class BigDFTParser(ParserInterface):
 
         if version_id is None:
             msg = "Could not find a version specification from the given main file."
-            logger.exception(msg)
+            self.logger.exception(msg)
             raise RuntimeError(msg)
 
         # Setup the root folder to the fileservice that is used to access files
@@ -78,17 +90,17 @@ class BigDFTParser(ParserInterface):
         try:
             parser_module = importlib.import_module(base)
         except ImportError:
-            logger.warning("Could not find a parser for version '{}'. Trying to default to the base implementation for BigDFT 1.8.0".format(version_id))
+            self.logger.warning("Could not find a parser for version '{}'. Trying to default to the base implementation for BigDFT 1.8.0".format(version_id))
             base = "bigdftparser.versions.bigdft18.mainparser"
             try:
                 parser_module = importlib.import_module(base)
             except ImportError:
-                logger.exception("Could not find the module '{}'".format(base))
+                self.logger.exception("Could not find the module '{}'".format(base))
                 raise
         try:
             class_name = "BigDFTMainParser"
             parser_class = getattr(parser_module, class_name)
         except AttributeError:
-            logger.exception("A parser class '{}' could not be found in the module '[]'.".format(class_name, parser_module))
+            self.logger.exception("A parser class '{}' could not be found in the module '[]'.".format(class_name, parser_module))
             raise
         self.main_parser = parser_class(self.parser_context)