From d9f260dd51ac23351d2cac6dee7567451f53d3e7 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Thu, 15 Oct 2020 15:50:55 +0200 Subject: [PATCH] Add utility KeywordLocation::format() --- CMakeLists_files.cmake | 1 + opm/common/OpmLog/KeywordLocation.hpp | 2 ++ src/opm/common/OpmLog/KeywordLocation.cpp | 33 +++++++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 src/opm/common/OpmLog/KeywordLocation.cpp diff --git a/CMakeLists_files.cmake b/CMakeLists_files.cmake index f7823a0cc..a0ade6f09 100644 --- a/CMakeLists_files.cmake +++ b/CMakeLists_files.cmake @@ -26,6 +26,7 @@ list (APPEND MAIN_SOURCE_FILES src/opm/common/OpmLog/LogBackend.cpp src/opm/common/OpmLog/Logger.cpp src/opm/common/OpmLog/LogUtil.cpp + src/opm/common/OpmLog/KeywordLocation.cpp src/opm/common/OpmLog/OpmLog.cpp src/opm/common/OpmLog/StreamLog.cpp src/opm/common/OpmLog/TimerLog.cpp diff --git a/opm/common/OpmLog/KeywordLocation.hpp b/opm/common/OpmLog/KeywordLocation.hpp index 8a798c9ba..ade3f706e 100644 --- a/opm/common/OpmLog/KeywordLocation.hpp +++ b/opm/common/OpmLog/KeywordLocation.hpp @@ -51,6 +51,8 @@ public: {} + std::string format(const std::string& msg_fmt) const; + static KeywordLocation serializeObject() { KeywordLocation result; diff --git a/src/opm/common/OpmLog/KeywordLocation.cpp b/src/opm/common/OpmLog/KeywordLocation.cpp new file mode 100644 index 000000000..1ca246cb2 --- /dev/null +++ b/src/opm/common/OpmLog/KeywordLocation.cpp @@ -0,0 +1,33 @@ +/* + Copyright 2020 Statoil ASA. + + This file is part of the Open Porous Media project (OPM). + + OPM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OPM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with OPM. If not, see . +*/ + +#include +#include + + +namespace Opm { + +std::string KeywordLocation::format(const std::string& msg_fmt) const { + return fmt::format(msg_fmt, + fmt::arg("keyword", this->keyword), + fmt::arg("file", this->filename), + fmt::arg("line", this->lineno)); +} + +}