blob: f6fe716839c1701ce67fcf1b32222ef4784ca9d9 [file] [log] [blame]
Václav Kubernát6018f082021-02-11 01:32:18 +01001/*
2 * Copyright (C) 2021 CESNET, https://photonics.cesnet.cz/
3 *
4 * Written by Václav Kubernát <kubernat@cesnet.cz>
5 *
6*/
7
8#include <docopt.h>
9#include "log.h"
10
11spdlog::level::level_enum parseLogLevel(const std::string& name, const docopt::value& option)
12{
13 long x;
14 try {
15 x = option.asLong();
16 } catch (std::invalid_argument&) {
17 throw std::runtime_error(name + " log level: expecting integer");
18 }
19 static_assert(spdlog::level::trace < spdlog::level::off, "spdlog::level levels have changed");
20 static_assert(spdlog::level::off == 6, "spdlog::level levels have changed");
21 if (x < 0 || x > 5)
22 throw std::runtime_error(name + " log level invalid or out-of-range");
23
24 return static_cast<spdlog::level::level_enum>(5 - x);
25}