git.delta.rocks / jrsonnet / refs/commits / 1b17cca8d34d

difftreelog

source

crates/nix-eval/src/logging.cc2.2 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(reinterpret_cast<const unsigned char*>(s.data()), s.size());13    emit_log(lvl, str);14  }15  void logEI(const ErrorInfo &ei) override {16    auto s = ei.msg.str();17    rust::Slice<const unsigned char> str(reinterpret_cast<const unsigned char*>(s.data()), s.size());18    emit_log(ei.level, str);19  }2021  void startActivity(ActivityId act, Verbosity lvl, ActivityType type,22                     const std::string &s, const Fields &fields,23                     ActivityId parent) override {24    auto b = new_start_activity(act, lvl, type);25    for (auto &f : fields) {26      if (f.type == Logger::Field::tInt) {27        b->add_int_field(f.i);28      } else if (f.type == Logger::Field::tString) {29        auto s = &f.s;30        rust::Slice<const unsigned char> str(reinterpret_cast<const unsigned char*>(s->data()), s->size());31        b->add_string_field(str);32      } else {33        unreachable();34      }35    }36    b->emit(parent, s);37  };3839  void stopActivity(ActivityId act) override { emit_stop(act); };4041  void result(ActivityId act, ResultType type, const Fields &fields) override {42    auto b = new_start_activity(act, 0, type);43    for (auto &f : fields) {44      if (f.type == Logger::Field::tInt) {45        b->add_int_field(f.i);46      } else if (f.type == Logger::Field::tString) {47        auto s = &f.s;48        rust::Slice<const unsigned char> str(reinterpret_cast<const unsigned char*>(s->data()), s->size());49        b->add_string_field(str);50      } else {51        unreachable();52      }53    }54    b->emit_result(type);55  };5657  void writeToStdout(std::string_view s) override {58    emit_warn("writeToStdout() called, but unsupported");59  }60  void warn(const std::string &msg) override { emit_warn(msg); }6162  virtual std::optional<char> ask(std::string_view s) {63    emit_warn("ask() called, but unsupported");64    return {};65  }66};6768extern "C" {69void apply_tracing_logger() {70  logger = std::make_unique<TracingLogger>();71  // verbosity = lvlVomit;72}73}