From 645c8f8177f5e5acacdef976e38fa952e1bc601c Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Mon, 24 Aug 2020 09:09:18 +0200 Subject: [PATCH] [util] Add option to disable log files entirely But still log to stderr. Fixes #1743. --- src/util/log/log.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/util/log/log.cpp b/src/util/log/log.cpp index b89edcd1b..14b0dc027 100644 --- a/src/util/log/log.cpp +++ b/src/util/log/log.cpp @@ -6,8 +6,12 @@ namespace dxvk { Logger::Logger(const std::string& file_name) : m_minLevel(getMinLogLevel()) { - if (m_minLevel != LogLevel::None) - m_fileStream = std::ofstream(getFileName(file_name)); + if (m_minLevel != LogLevel::None) { + auto path = getFileName(file_name); + + if (!path.empty()) + m_fileStream = std::ofstream(path); + } } @@ -57,8 +61,10 @@ namespace dxvk { std::string line; while (std::getline(stream, line, '\n')) { - std::cerr << prefix << line << std::endl; - m_fileStream << prefix << line << std::endl; + std::cerr << prefix << line << std::endl; + + if (m_fileStream) + m_fileStream << prefix << line << std::endl; } } } @@ -88,9 +94,12 @@ namespace dxvk { std::string Logger::getFileName(const std::string& base) { std::string path = env::getEnvVar("DXVK_LOG_PATH"); + if (path == "none") + return ""; + if (!path.empty() && *path.rbegin() != '/') path += '/'; - + std::string exeName = env::getExeName(); auto extp = exeName.find_last_of('.');