summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/common/cli.hpp5
-rw-r--r--src/buildtool/main/main.cpp6
2 files changed, 9 insertions, 2 deletions
diff --git a/src/buildtool/common/cli.hpp b/src/buildtool/common/cli.hpp
index 46e8a7c9..865ef500 100644
--- a/src/buildtool/common/cli.hpp
+++ b/src/buildtool/common/cli.hpp
@@ -45,6 +45,7 @@ struct LogArguments {
std::vector<std::filesystem::path> log_files{};
LogLevel log_limit{kDefaultLogLevel};
bool plain_log{false};
+ bool log_append{false};
};
/// \brief Arguments required for analysing targets.
@@ -201,6 +202,10 @@ static inline auto SetupLogArguments(
app->add_flag("--plain-log",
clargs->plain_log,
"Do not use ANSI escape sequences to highlight messages.");
+ app->add_flag(
+ "--log-append",
+ clargs->log_append,
+ "Append messages to log file instead of overwriting existing.");
}
static inline auto SetupAnalysisArguments(
diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp
index 3e23cf63..d3911bf1 100644
--- a/src/buildtool/main/main.cpp
+++ b/src/buildtool/main/main.cpp
@@ -288,8 +288,10 @@ void SetupLogging(LogArguments const& clargs) {
LogConfig::SetLogLimit(clargs.log_limit);
LogConfig::SetSinks({LogSinkCmdLine::CreateFactory(not clargs.plain_log)});
for (auto const& log_file : clargs.log_files) {
- LogConfig::AddSink(
- LogSinkFile::CreateFactory(log_file, LogSinkFile::Mode::Overwrite));
+ LogConfig::AddSink(LogSinkFile::CreateFactory(
+ log_file,
+ clargs.log_append ? LogSinkFile::Mode::Append
+ : LogSinkFile::Mode::Overwrite));
}
}