Skip to content

Commit b976af2

Browse files
committed
🔥 Remove level from logging message symbols
Level is not a property of a message string, it's a property of a message instance.
1 parent 903437b commit b976af2

File tree

3 files changed

+7
-14
lines changed

3 files changed

+7
-14
lines changed

include/log/catalog/catalog.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
#pragma once
22

3-
#include <log/level.hpp>
4-
53
#include <cstdint>
64

75
namespace sc {
86
template <typename...> struct args;
97
template <typename, typename T, T...> struct undefined;
108

11-
template <logging::level, typename> struct message {};
9+
template <typename> struct message {};
1210
template <typename> struct module_string {};
1311
} // namespace sc
1412

include/log/catalog/mipi_encoder.hpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,11 @@
2020

2121
namespace logging::mipi {
2222
namespace detail {
23-
template <auto L, typename S, typename... Args> constexpr auto to_message() {
23+
template <typename S, typename... Args> constexpr auto to_message() {
2424
constexpr auto s = S::value;
2525
using char_t = typename std::remove_cv_t<decltype(s)>::value_type;
2626
return [&]<std::size_t... Is>(std::integer_sequence<std::size_t, Is...>) {
2727
return sc::message<
28-
static_cast<logging::level>(L),
2928
sc::undefined<sc::args<Args...>, char_t, s[Is]...>>{};
3029
}(std::make_integer_sequence<std::size_t, std::size(s)>{});
3130
}
@@ -114,7 +113,7 @@ template <typename TDestinations> struct log_handler {
114113
ALWAYS_INLINE auto log_msg(Msg msg) -> void {
115114
msg.apply([&]<typename S, typename... Args>(S, Args... args) {
116115
constexpr auto L = stdx::to_underlying(get_level(Env{}).value);
117-
using Message = decltype(detail::to_message<L, S, Args...>());
116+
using Message = decltype(detail::to_message<S, Args...>());
118117
using Module =
119118
decltype(detail::to_module<get_module(Env{}).value>());
120119
dispatch_message<L>(catalog<Message>(), module<Module>(),

tools/gen_str_catalog.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,21 @@ def split_args(s: str) -> list[str]:
3232

3333

3434
string_re = re.compile(
35-
r"sc::message<\(logging::level\)(\d+), sc::undefined<sc::args<(.*)>, char, (.*)>\s*>"
35+
r"sc::message<sc::undefined<sc::args<(.*)>, char, (.*)>\s*>"
3636
)
3737

3838

3939
def extract_string_id(line_m):
40-
levels = ["MAX", "FATAL", "ERROR", "WARN", "INFO", "USER1", "USER2", "TRACE"]
41-
4240
catalog_type = line_m.group(1)
4341
string_m = string_re.match(line_m.group(3))
44-
log_level = string_m.group(1)
45-
arg_tuple = string_m.group(2)
46-
string_tuple = string_m.group(3).replace("(char)", "")
42+
arg_tuple = string_m.group(1)
43+
string_tuple = string_m.group(2).replace("(char)", "")
4744
string_value = "".join((chr(int(c)) for c in re.split(r"\s*,\s*", string_tuple)))
4845
args = split_args(arg_tuple)
4946

5047
return (
5148
(catalog_type, arg_tuple),
5249
dict(
53-
level=levels[int(log_level)],
5450
msg=string_value,
5551
type="flow" if string_value.startswith("flow.") else "msg",
5652
arg_types=args,
@@ -85,7 +81,7 @@ def extract(line_num: int, line_m):
8581

8682

8783
def stable_msg_key(msg: dict):
88-
return hash(msg["level"]) ^ hash(msg["msg"]) ^ hash("".join(msg["arg_types"]))
84+
return hash(msg["msg"]) ^ hash("".join(msg["arg_types"]))
8985

9086

9187
def stable_module_key(module: str):

0 commit comments

Comments
 (0)