Branch data Line data Source code
1 : : // Copyright 2026 HPActor Contributors
2 : : //
3 : : // Licensed under the Apache License, Version 2.0 (the "License");
4 : : // you may not use this file except in compliance with the License.
5 : : // You may obtain a copy of the License at
6 : : //
7 : : // http://www.apache.org/licenses/LICENSE-2.0
8 : : //
9 : : // Unless required by applicable law or agreed to in writing, software
10 : : // distributed under the License is distributed on an "AS IS" BASIS,
11 : : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 : : // See the License for the specific language governing permissions and
13 : : // limitations under the License.
14 : :
15 : : #include <hpactor/log/log_level.hpp>
16 : :
17 : : namespace hpactor::log {
18 : :
19 : 583 : [[nodiscard]] const char* to_string(LogLevel level) noexcept {
20 : 583 : switch (level) {
21 : 1 : case LogLevel::kCritical:
22 : 1 : return "critical";
23 : 1 : case LogLevel::kError:
24 : 1 : return "error";
25 : 415 : case LogLevel::kWarning:
26 : 415 : return "warning";
27 : 163 : case LogLevel::kInfo:
28 : 163 : return "info";
29 : 1 : case LogLevel::kDebug:
30 : 1 : return "debug";
31 : 1 : case LogLevel::kTrace:
32 : 1 : return "trace";
33 : 1 : case LogLevel::kOff:
34 : 1 : return "off";
35 : : }
36 : 0 : return "unknown";
37 : : }
38 : :
39 : 13 : [[nodiscard]] result<LogLevel> parse_level(std::string_view value) noexcept {
40 : 13 : if (value == "critical")
41 : 2 : return result<LogLevel>::make(LogLevel::kCritical);
42 : 11 : if (value == "error")
43 : 2 : return result<LogLevel>::make(LogLevel::kError);
44 : 9 : if (value == "warning")
45 : 1 : return result<LogLevel>::make(LogLevel::kWarning);
46 : 8 : if (value == "info")
47 : 1 : return result<LogLevel>::make(LogLevel::kInfo);
48 : 7 : if (value == "debug")
49 : 2 : return result<LogLevel>::make(LogLevel::kDebug);
50 : 5 : if (value == "trace")
51 : 2 : return result<LogLevel>::make(LogLevel::kTrace);
52 : 3 : if (value == "off")
53 : 1 : return result<LogLevel>::make(LogLevel::kOff);
54 : 4 : return result<LogLevel>::make(error(errors::unknown, "unknown log level"));
55 : : }
56 : :
57 : : } // namespace hpactor::log
|