diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/common/cli.hpp | 5 | ||||
-rw-r--r-- | src/buildtool/main/main.cpp | 6 |
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)); } } |