git.delta.rocks / jrsonnet / refs/commits / cd7c759361f6

difftreelog

source

crates/nix-eval/src/logging.cc1.8 KiBsourcehistory
1#include "nix-eval/src/logging.rs"2#include "logging.hh"3#include <nix/util/logging.hh>45using namespace nix;67struct TracingLogger : Logger {8  TracingLogger() {}910  bool isVerbose() override { return true; }11  void log(Verbosity lvl, std::string_view s) override {12    rust::Str str(s.data(), s.size());13    emit_log(lvl, str);14  }15  void logEI(const ErrorInfo &ei) override { emit_log(ei.level, ei.msg.str()); }1617  void startActivity(ActivityId act, Verbosity lvl, ActivityType type,18                     const std::string &s, const Fields &fields,19                     ActivityId parent) override {20    auto b = new_start_activity(act, lvl, type);21    for (auto &f : fields) {22      if (f.type == Logger::Field::tInt) {23        b->add_int_field(f.i);24      } else if (f.type == Logger::Field::tString) {25        b->add_string_field(f.s);26      } else {27        unreachable();28      }29    }30    b->emit(parent, s);31  };3233  void stopActivity(ActivityId act) override { emit_stop(act); };3435  void result(ActivityId act, ResultType type, const Fields &fields) override {36    auto b = new_start_activity(act, 0, type);37    for (auto &f : fields) {38      if (f.type == Logger::Field::tInt) {39        b->add_int_field(f.i);40      } else if (f.type == Logger::Field::tString) {41        b->add_string_field(f.s);42      } else {43        unreachable();44      }45    }46    b->emit_result(type);47  };4849  void writeToStdout(std::string_view s) override {50    emit_warn("writeToStdout() called, but unsupported");51  }52  void warn(const std::string &msg) override { emit_warn(msg); }5354  virtual std::optional<char> ask(std::string_view s) {55    emit_warn("ask() called, but unsupported");56    return {};57  }58};5960extern "C" {61void apply_tracing_logger() {62  logger = std::make_unique<TracingLogger>();63  // verbosity = lvlVomit;64}65}