git.delta.rocks / jrsonnet / refs/commits / 8fa5c73b5fe4

difftreelog

source

crates/nix-eval/src/logging.cc2.3 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::Slice<const unsigned char> str(13        reinterpret_cast<const unsigned char *>(s.data()), s.size());14    emit_log(lvl, str);15  }16  void logEI(const ErrorInfo &ei) override {17    auto s = ei.msg.str();18    rust::Slice<const unsigned char> str(19        reinterpret_cast<const unsigned char *>(s.data()), s.size());20    emit_log(ei.level, str);21  }2223  void startActivity(ActivityId act, Verbosity lvl, ActivityType type,24                     const std::string &s, const Fields &fields,25                     ActivityId parent) override {26    auto b = new_start_activity(act, lvl, type);27    for (auto &f : fields) {28      if (f.type == Logger::Field::tInt) {29        b->add_int_field(f.i);30      } else if (f.type == Logger::Field::tString) {31        auto s = &f.s;32        rust::Slice<const unsigned char> str(33            reinterpret_cast<const unsigned char *>(s->data()), s->size());34        b->add_string_field(str);35      } else {36        unreachable();37      }38    }39    b->emit(parent, s);40  };4142  void stopActivity(ActivityId act) override { emit_stop(act); };4344  void result(ActivityId act, ResultType type, const Fields &fields) override {45    auto b = new_start_activity(act, 0, type);46    for (auto &f : fields) {47      if (f.type == Logger::Field::tInt) {48        b->add_int_field(f.i);49      } else if (f.type == Logger::Field::tString) {50        auto s = &f.s;51        rust::Slice<const unsigned char> str(52            reinterpret_cast<const unsigned char *>(s->data()), s->size());53        b->add_string_field(str);54      } else {55        unreachable();56      }57    }58    b->emit_result(type);59  };6061  void writeToStdout(std::string_view s) override {62    emit_warn("writeToStdout() called, but unsupported");63  }64  void warn(const std::string &msg) override { emit_warn(msg); }6566  virtual std::optional<char> ask(std::string_view s) {67    emit_warn("ask() called, but unsupported");68    return {};69  }70};7172extern "C" {73void apply_tracing_logger() {74  logger = std::make_unique<TracingLogger>();75  // verbosity = lvlVomit;76}77}