diff --git a/dune/stuff/common/logging.cc b/dune/stuff/common/logging.cc
index a42d87076a406e51ee5f8d17a2e0c2cb0d61d2da..d2a7b70bafd358332a64cd2ef584f8d126d0db16 100644
--- a/dune/stuff/common/logging.cc
+++ b/dune/stuff/common/logging.cc
@@ -62,6 +62,7 @@ void Logging::create(int logflags, const std::string logfile, const std::string
   logflags_   = logflags;
   path logdir = path(datadir) / _logdir;
   filename_ = logdir / (log_fn % logfile % ".log").str();
+  testCreateDirectory(filename_.string());
   if ((logflags_ & LOG_FILE) != 0) {
     logfile_.open(filename_);
     assert(logfile_.is_open());