mirror of https://github.com/mamba-org/mamba.git
set log level in context ctor
add set_log_level method add python bindings for set_log_level and log levels enum use set_log_level in mamba
This commit is contained in:
parent
6cf614761c
commit
6422b29891
|
@ -133,6 +133,7 @@ namespace mamba
|
||||||
long max_parallel_downloads = 5;
|
long max_parallel_downloads = 5;
|
||||||
int verbosity = 0;
|
int verbosity = 0;
|
||||||
void set_verbosity(int lvl);
|
void set_verbosity(int lvl);
|
||||||
|
void set_log_level(const spdlog::level::level_enum& level);
|
||||||
|
|
||||||
spdlog::level::level_enum log_level = spdlog::level::level_enum::warn;
|
spdlog::level::level_enum log_level = spdlog::level::level_enum::warn;
|
||||||
std::string log_pattern = "%^%-8!l%$ %v";
|
std::string log_pattern = "%^%-8!l%$ %v";
|
||||||
|
|
|
@ -294,14 +294,14 @@ namespace mamba
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ctx.set_verbosity(lvl);
|
ctx.verbosity = lvl;
|
||||||
// Make it appears like set with the CLI
|
// Make it appears like set with the CLI
|
||||||
// TODO: find a better way than passing by YAML to convert to string?
|
// TODO: find a better way than passing by YAML to convert to string?
|
||||||
log_level.set_cli_config(YAML::Node(ctx.verbosity).as<std::string>());
|
log_level.set_cli_config(YAML::Node(ctx.verbosity).as<std::string>());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
ctx.set_verbosity(lvl);
|
ctx.verbosity = lvl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void target_prefix_checks_hook(int& options)
|
void target_prefix_checks_hook(int& options)
|
||||||
|
|
|
@ -17,7 +17,6 @@ namespace mamba
|
||||||
{
|
{
|
||||||
Context::Context()
|
Context::Context()
|
||||||
{
|
{
|
||||||
set_verbosity(0);
|
|
||||||
on_ci = (std::getenv("CI") != nullptr);
|
on_ci = (std::getenv("CI") != nullptr);
|
||||||
if (on_ci || !termcolor::_internal::is_atty(std::cout))
|
if (on_ci || !termcolor::_internal::is_atty(std::cout))
|
||||||
{
|
{
|
||||||
|
@ -29,6 +28,7 @@ namespace mamba
|
||||||
std::shared_ptr<spdlog::logger> l = std::make_shared<Logger>(log_pattern);
|
std::shared_ptr<spdlog::logger> l = std::make_shared<Logger>(log_pattern);
|
||||||
spdlog::set_default_logger(l);
|
spdlog::set_default_logger(l);
|
||||||
logger = std::dynamic_pointer_cast<Logger>(l);
|
logger = std::dynamic_pointer_cast<Logger>(l);
|
||||||
|
spdlog::set_level(log_level);
|
||||||
}
|
}
|
||||||
|
|
||||||
Context& Context::instance()
|
Context& Context::instance()
|
||||||
|
@ -42,6 +42,12 @@ namespace mamba
|
||||||
this->verbosity = lvl;
|
this->verbosity = lvl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Context::set_log_level(const spdlog::level::level_enum& level)
|
||||||
|
{
|
||||||
|
log_level = level;
|
||||||
|
spdlog::set_level(level);
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<std::string> Context::platforms()
|
std::vector<std::string> Context::platforms()
|
||||||
{
|
{
|
||||||
return { platform, "noarch" };
|
return { platform, "noarch" };
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace mamba
|
||||||
{
|
{
|
||||||
// TEST(cpp_install, install)
|
// TEST(cpp_install, install)
|
||||||
// {
|
// {
|
||||||
// Context::instance().set_verbosity(3);
|
// Context::instance().verbosity = 3;
|
||||||
// PackageInfo pkg("wheel", "0.34.2", "py_1", 1);
|
// PackageInfo pkg("wheel", "0.34.2", "py_1", 1);
|
||||||
// fs::path prefix = "C:\\Users\\wolfv\\miniconda3\\";
|
// fs::path prefix = "C:\\Users\\wolfv\\miniconda3\\";
|
||||||
// TransactionContext tc(prefix, "3.8.x");
|
// TransactionContext tc(prefix, "3.8.x");
|
||||||
|
|
|
@ -217,6 +217,15 @@ PYBIND11_MODULE(bindings, m)
|
||||||
.value("kStrict", ChannelPriority::kStrict)
|
.value("kStrict", ChannelPriority::kStrict)
|
||||||
.value("kDisabled", ChannelPriority::kDisabled);
|
.value("kDisabled", ChannelPriority::kDisabled);
|
||||||
|
|
||||||
|
py::enum_<spdlog::level::level_enum>(m, "LogLevel")
|
||||||
|
.value("TRACE", spdlog::level::trace)
|
||||||
|
.value("DEBUG", spdlog::level::debug)
|
||||||
|
.value("INFO", spdlog::level::info)
|
||||||
|
.value("WARNING", spdlog::level::warn)
|
||||||
|
.value("ERROR", spdlog::level::err)
|
||||||
|
.value("CRITICAL", spdlog::level::critical)
|
||||||
|
.value("OFF", spdlog::level::off);
|
||||||
|
|
||||||
py::class_<Context, std::unique_ptr<Context, py::nodelete>>(m, "Context")
|
py::class_<Context, std::unique_ptr<Context, py::nodelete>>(m, "Context")
|
||||||
.def(
|
.def(
|
||||||
py::init([]() { return std::unique_ptr<Context, py::nodelete>(&Context::instance()); }))
|
py::init([]() { return std::unique_ptr<Context, py::nodelete>(&Context::instance()); }))
|
||||||
|
@ -243,14 +252,15 @@ PYBIND11_MODULE(bindings, m)
|
||||||
.def_readwrite("envs_dirs", &Context::envs_dirs)
|
.def_readwrite("envs_dirs", &Context::envs_dirs)
|
||||||
.def_readwrite("pkgs_dirs", &Context::pkgs_dirs)
|
.def_readwrite("pkgs_dirs", &Context::pkgs_dirs)
|
||||||
.def_readwrite("platform", &Context::platform)
|
.def_readwrite("platform", &Context::platform)
|
||||||
.def("set_verbosity", &Context::set_verbosity)
|
|
||||||
.def_readwrite("channels", &Context::channels)
|
.def_readwrite("channels", &Context::channels)
|
||||||
.def_readwrite("custom_channels", &Context::custom_channels)
|
.def_readwrite("custom_channels", &Context::custom_channels)
|
||||||
.def_readwrite("custom_multichannels", &Context::custom_multichannels)
|
.def_readwrite("custom_multichannels", &Context::custom_multichannels)
|
||||||
.def_readwrite("default_channels", &Context::default_channels)
|
.def_readwrite("default_channels", &Context::default_channels)
|
||||||
.def_readwrite("channel_alias", &Context::channel_alias)
|
.def_readwrite("channel_alias", &Context::channel_alias)
|
||||||
.def_readwrite("use_only_tar_bz2", &Context::use_only_tar_bz2)
|
.def_readwrite("use_only_tar_bz2", &Context::use_only_tar_bz2)
|
||||||
.def_readwrite("channel_priority", &Context::channel_priority);
|
.def_readwrite("channel_priority", &Context::channel_priority)
|
||||||
|
.def("set_verbosity", &Context::set_verbosity)
|
||||||
|
.def("set_log_level", &Context::set_log_level);
|
||||||
|
|
||||||
py::class_<PrefixData>(m, "PrefixData")
|
py::class_<PrefixData>(m, "PrefixData")
|
||||||
.def(py::init<const std::string&>())
|
.def(py::init<const std::string&>())
|
||||||
|
|
|
@ -191,6 +191,17 @@ def load_channels(
|
||||||
return index
|
return index
|
||||||
|
|
||||||
|
|
||||||
|
def log_level_from_verbosity(verbosity: int):
|
||||||
|
if verbosity == 0:
|
||||||
|
return api.LogLevel.WARNING
|
||||||
|
elif verbosity == 1:
|
||||||
|
return api.LogLevel.INFO
|
||||||
|
elif verbosity == 2:
|
||||||
|
return api.LogLevel.DEBUG
|
||||||
|
else:
|
||||||
|
return api.LogLevel.TRACE
|
||||||
|
|
||||||
|
|
||||||
def init_api_context(use_mamba_experimental=False):
|
def init_api_context(use_mamba_experimental=False):
|
||||||
api_ctx = api.Context()
|
api_ctx = api.Context()
|
||||||
|
|
||||||
|
@ -202,7 +213,8 @@ def init_api_context(use_mamba_experimental=False):
|
||||||
if use_mamba_experimental:
|
if use_mamba_experimental:
|
||||||
context.json = False
|
context.json = False
|
||||||
|
|
||||||
api_ctx.set_verbosity(context.verbosity)
|
api_ctx.verbosity = context.verbosity
|
||||||
|
api_ctx.set_log_level(log_level_from_verbosity(context.verbosity))
|
||||||
api_ctx.quiet = context.quiet
|
api_ctx.quiet = context.quiet
|
||||||
api_ctx.offline = context.offline
|
api_ctx.offline = context.offline
|
||||||
api_ctx.local_repodata_ttl = context.local_repodata_ttl
|
api_ctx.local_repodata_ttl = context.local_repodata_ttl
|
||||||
|
|
Loading…
Reference in New Issue