diff --git a/corsika/framework/logging/Logging.h b/corsika/framework/logging/Logging.h
deleted file mode 100644
index 814f35de4de5c025c3bab8eaa7fdf51e135e7010..0000000000000000000000000000000000000000
--- a/corsika/framework/logging/Logging.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
- *
- * This software is distributed under the terms of the GNU General Public
- * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
- * the license.
- */
-
-/**
- *  @File Logging.h
- *
- * CORSIKA8 logging utilities.
- *
- * See testLogging.cc for a complete set of examples for
- * how the logging functions should be used.
- */
-
-#pragma once
-
-// Configure some behaviour of sdlog.
-// This must be done before spdlog is included.
-
-// use the coarse system clock. This is *much* faster
-// but introduces a real time error of O(10 ms).
-#define SPDLOG_CLOCK_COARSE
-
-// do not create a default logger (we provide our own "corsika" logger)
-#define SPDLOG_DISABLE_DEFAULT_LOGGER
-
-// use __PRETTY_FUNCTION__ instead of __FUNCTION__ where
-// printing function names in trace statements. This is much
-// nicer than __FUNCTION__ under GCC/clang.
-#define SPDLOG_FUNCTION __PRETTY_FUNCTION__
-
-// if this is a Debug build, include debug messages in objects
-#ifdef DEBUG
-// trace is the highest level of logging (ALL messages will be printed)
-#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_TRACE
-#else // otherwise, remove everything but "critical" messages
-#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_CRITICAL
-#endif
-
-#include <spdlog/fmt/ostr.h> // will output whenerver a streaming operator is found
-#include <spdlog/sinks/stdout_color_sinks.h>
-#include <spdlog/spdlog.h>
-
-namespace corsika::logging {
-
-  // bring spdlog into the corsika::logging namespace
-  using namespace spdlog;
-
-  /*
-   * The default pattern for CORSIKA8 loggers.
-   */
-  const std::string default_pattern{"[%n:%^%-8l%$] %v"};
-
-  /**
-   * Create a new C8-style logger.
-   *
-   * Use this if you are explicitly (and can guarantee) that you
-   * are creating a logger for the first time. It is recommended
-   * that for regular usage, the `GetLogger` function is used instead
-   * as that will also create the logger if it has not yet been created.
-   *
-   * Calling `CreateLogger` twice to create the same logger will
-   * result in an spdlog duplicate exception.
-   *
-   * @param name           The unique name of the logger.
-   * @param defaultlog     If True, set this as the default logger.
-   * @returns              The constructed and formatted logger.
-   */
-  inline auto CreateLogger(std::string const& name, bool const defaultlog = false) {
-
-    // create the logger
-    // this is currently a colorized multi-threading safe logger
-    auto logger = spdlog::stdout_color_mt(name);
-
-    // set the default C8 format
-    logger->set_pattern(default_pattern);
-
-    // if defaultlog is True, we set this as the default spdlog logger.
-    if (defaultlog) { spdlog::set_default_logger(logger); }
-
-    // and return the logger
-    return logger;
-  }
-
-  /**
-   * Get a smart pointer to an existing logger.
-   *
-   * This should be the default method for code to obtain a
-   * logger. If the logger *does not* exist, it is *created* and
-   * returned to the caller.
-   *
-   * This should be preferred over `CreateLogger`.
-   *
-   * @param name    The name of the logger to get.
-   * @param defaultlog   If True, make this the default logger.
-   * @returns              The constructed and formatted logger.
-   */
-  inline auto GetLogger(std::string const& name, bool const defaultlog = false) {
-
-    // attempt to get the logger from the registry
-    auto logger = spdlog::get(name);
-
-    // weg found the logger, so just return it
-    if (logger) {
-      return logger;
-    } else { // logger was not found so create it
-      return CreateLogger(name, defaultlog);
-    }
-  }
-
-  /**
-   * The default "corsika" logger.
-   */
-  inline auto corsika = GetLogger("corsika", true);
-
-  /**
-   * Set the default log level for all *newly* created loggers.
-   *
-   *  @param name    The minimum log level required to print.
-   *
-   */
-  inline auto SetDefaultLevel(level::level_enum const minlevel) -> void {
-    spdlog::set_level(minlevel);
-  }
-
-  /**
-   * Set the log level for the "corsika" logger.
-   *
-   * @param name    The minimum log level required to print.
-   *
-   */
-  inline auto SetLevel(level::level_enum const minlevel) -> void {
-    corsika->set_level(minlevel);
-  }
-
-  /**
-   * Set the log level for a specific logger.
-   *
-   * @param logger  The logger to set the level of.
-   * @param name    The minimum log level required to print.
-   *
-   */
-  template <typename TLogger>
-  inline auto SetLevel(TLogger& logger, level::level_enum const minlevel) -> void {
-    logger->set_level(minlevel);
-  }
-
-  /**
-   * Add the source (filename, line no) info to the logger.
-   *
-   * @param logger  The logger to set the level of.
-   *
-   */
-  template <typename TLogger>
-  inline auto AddSourceInfo(TLogger& logger) -> void {
-    logger->set_pattern("[%n:%^%-8l%$(%s:%!:%#)] %v");
-  }
-
-  /**
-   * Reset the logging pattern to the default.
-   *
-   * @param logger  The logger to set the level of.
-   *
-   */
-  template <typename TLogger>
-  inline auto ResetPattern(TLogger& logger) -> void {
-    logger->set_pattern(default_pattern);
-  }
-
-// define our macro-style loggers
-#define C8LOG_TRACE SPDLOG_TRACE
-#define C8LOG_DEBUG SPDLOG_DEBUG
-#define C8LOG_INFO SPDLOG_INFO
-#define C8LOG_WARN SPDLOG_WARN
-#define C8LOG_ERROR SPDLOG_ERROR
-#define C8LOG_CRITICAL SPDLOG_CRITICAL
-
-// and the specific logger versions
-#define C8LOG_LOGGER_TRACE SPDLOG_LOGGER_TRACE
-#define C8LOG_LOGGER_DEBUG SPDLOG_LOGGER_DEBUG
-#define C8LOG_LOGGER_INFO SPDLOG_LOGGER_INFO
-#define C8LOG_LOGGER_WARN SPDLOG_LOGGER_WARN
-#define C8LOG_LOGGER_ERROR SPDLOG_LOGGER_ERROR
-#define C8LOG_LOGGER_CRITICAL SPDLOG_LOGGER_CRITICAL
-
-} // namespace corsika::logging