aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-04-12 14:53:10 +0200
committerEelco Dolstra <edolstra@gmail.com>2017-04-13 16:03:31 +0200
commit6d97d816565505606792050131b5d4d7fca33245 (patch)
tree5fc50ee88f0eb16de9a6a9144aef205f441af030
parent31cc9366fc81c3f478b31a206daa6b38801cd3b1 (diff)
Add warn function
-rw-r--r--src/libutil/logging.cc7
-rw-r--r--src/libutil/logging.hh10
2 files changed, 16 insertions, 1 deletions
diff --git a/src/libutil/logging.cc b/src/libutil/logging.cc
index 53f6260b7..afcc2ec58 100644
--- a/src/libutil/logging.cc
+++ b/src/libutil/logging.cc
@@ -5,6 +5,11 @@ namespace nix {
Logger * logger = makeDefaultLogger();
+void Logger::warn(const std::string & msg)
+{
+ log(lvlInfo, ANSI_RED "warning:" ANSI_NORMAL " " + msg);
+}
+
class SimpleLogger : public Logger
{
public:
@@ -52,7 +57,7 @@ Verbosity verbosity = lvlInfo;
void warnOnce(bool & haveWarned, const FormatOrString & fs)
{
if (!haveWarned) {
- printError(format("warning: %1%") % fs.s);
+ warn(fs.s);
haveWarned = true;
}
}
diff --git a/src/libutil/logging.hh b/src/libutil/logging.hh
index 3f8366479..81aebccdc 100644
--- a/src/libutil/logging.hh
+++ b/src/libutil/logging.hh
@@ -30,6 +30,8 @@ public:
log(lvlInfo, fs);
}
+ virtual void warn(const std::string & msg);
+
virtual void setExpected(const std::string & label, uint64_t value = 1) { }
virtual void setProgress(const std::string & label, uint64_t value = 1) { }
virtual void incExpected(const std::string & label, uint64_t value = 1) { }
@@ -82,6 +84,14 @@ extern Verbosity verbosity; /* suppress msgs > this */
#define debug(args...) printMsg(lvlDebug, args)
#define vomit(args...) printMsg(lvlVomit, args)
+template<typename... Args>
+inline void warn(const std::string & fs, Args... args)
+{
+ boost::format f(fs);
+ formatHelper(f, args...);
+ logger->warn(f.str());
+}
+
void warnOnce(bool & haveWarned, const FormatOrString & fs);
void writeToStderr(const string & s);