diff --git a/tests/test_daily_logger.cpp b/tests/test_daily_logger.cpp
index c89ef171..6a6ec8b3 100644
--- a/tests/test_daily_logger.cpp
+++ b/tests/test_daily_logger.cpp
@@ -105,7 +105,7 @@ TEST_CASE("daily_file_sink::daily_filename_calculator", "[daily_file_sink]]")
 static spdlog::details::log_msg create_msg(std::chrono::seconds offset)
 {
     using spdlog::log_clock;
-    spdlog::details::log_msg msg{"test", spdlog::level::info, "Hello Message"};
+    spdlog::details::log_msg msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "Hello Message"};
     msg.time = log_clock::now() + offset;
     return msg;
 }
diff --git a/tests/test_dup_filter.cpp b/tests/test_dup_filter.cpp
index 47541e0f..c99f9e3d 100644
--- a/tests/test_dup_filter.cpp
+++ b/tests/test_dup_filter.cpp
@@ -13,7 +13,7 @@ TEST_CASE("dup_filter_test1", "[dup_filter_sink]")
 
     for (int i = 0; i < 10; i++)
     {
-        dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::info, "message1"});
+        dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "message1"});
     }
 
     REQUIRE(test_sink->msg_counter() == 1);
@@ -27,7 +27,7 @@ TEST_CASE("dup_filter_test2", "[dup_filter_sink]")
 
     for (int i = 0; i < 10; i++)
     {
-        dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::info, "message1"});
+        dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "message1"});
         std::this_thread::sleep_for(std::chrono::milliseconds(5));
     }
 
@@ -42,8 +42,8 @@ TEST_CASE("dup_filter_test3", "[dup_filter_sink]")
 
     for (int i = 0; i < 10; i++)
     {
-        dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::info, "message1"});
-        dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::info, "message2"});
+        dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "message1"});
+        dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "message2"});
     }
 
     REQUIRE(test_sink->msg_counter() == 20);
@@ -55,9 +55,9 @@ TEST_CASE("dup_filter_test4", "[dup_filter_sink]")
     auto test_sink = std::make_shared<test_sink_mt>();
     dup_sink.add_sink(test_sink);
 
-    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::info, "message"});
+    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "message"});
     std::this_thread::sleep_for(std::chrono::milliseconds(50));
-    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::info, "message"});
+    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "message"});
     REQUIRE(test_sink->msg_counter() == 2);
 }
 
@@ -67,10 +67,10 @@ TEST_CASE("dup_filter_test5", "[dup_filter_sink]")
     auto test_sink = std::make_shared<test_sink_mt>();
     dup_sink.add_sink(test_sink);
 
-    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::info, "message1"});
-    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::info, "message1"});
-    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::info, "message1"});
-    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::info, "message2"});
+    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "message1"});
+    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "message1"});
+    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "message1"});
+    dup_sink.log(spdlog::details::log_msg{"test", spdlog::level::forceable{spdlog::level::info, false}, "message2"});
 
     REQUIRE(test_sink->msg_counter() == 3); // skip 2 messages but log the "skipped.." message before message2
 }
diff --git a/tests/test_pattern_formatter.cpp b/tests/test_pattern_formatter.cpp
index 9bf8d4b1..7fa27466 100644
--- a/tests/test_pattern_formatter.cpp
+++ b/tests/test_pattern_formatter.cpp
@@ -66,7 +66,7 @@ TEST_CASE("color range test1", "[pattern_formatter]")
     fmt::format_to(buf, "Hello");
     memory_buf_t formatted;
     std::string logger_name = "test";
-    spdlog::details::log_msg msg(logger_name, spdlog::level::info, spdlog::string_view_t(buf.data(), buf.size()));
+    spdlog::details::log_msg msg(logger_name, spdlog::level::forceable{spdlog::level::info, false}, spdlog::string_view_t(buf.data(), buf.size()));
     formatter->format(msg, formatted);
     REQUIRE(msg.color_range_start == 0);
     REQUIRE(msg.color_range_end == 5);
@@ -77,7 +77,7 @@ TEST_CASE("color range test2", "[pattern_formatter]")
 {
     auto formatter = std::make_shared<spdlog::pattern_formatter>("%^%$", spdlog::pattern_time_type::local, "\n");
     std::string logger_name = "test";
-    spdlog::details::log_msg msg(logger_name, spdlog::level::info, "");
+    spdlog::details::log_msg msg(logger_name, spdlog::level::forceable{spdlog::level::info, false}, "");
     memory_buf_t formatted;
     formatter->format(msg, formatted);
     REQUIRE(msg.color_range_start == 0);
@@ -89,7 +89,7 @@ TEST_CASE("color range test3", "[pattern_formatter]")
 {
     auto formatter = std::make_shared<spdlog::pattern_formatter>("%^***%$");
     std::string logger_name = "test";
-    spdlog::details::log_msg msg(logger_name, spdlog::level::info, "ignored");
+    spdlog::details::log_msg msg(logger_name, spdlog::level::forceable{spdlog::level::info, false}, "ignored");
     memory_buf_t formatted;
     formatter->format(msg, formatted);
     REQUIRE(msg.color_range_start == 0);
@@ -100,7 +100,7 @@ TEST_CASE("color range test4", "[pattern_formatter]")
 {
     auto formatter = std::make_shared<spdlog::pattern_formatter>("XX%^YYY%$", spdlog::pattern_time_type::local, "\n");
     std::string logger_name = "test";
-    spdlog::details::log_msg msg(logger_name, spdlog::level::info, "ignored");
+    spdlog::details::log_msg msg(logger_name, spdlog::level::forceable{spdlog::level::info, false}, "ignored");
 
     memory_buf_t formatted;
     formatter->format(msg, formatted);
@@ -113,7 +113,7 @@ TEST_CASE("color range test5", "[pattern_formatter]")
 {
     auto formatter = std::make_shared<spdlog::pattern_formatter>("**%^");
     std::string logger_name = "test";
-    spdlog::details::log_msg msg(logger_name, spdlog::level::info, "ignored");
+    spdlog::details::log_msg msg(logger_name, spdlog::level::forceable{spdlog::level::info, false}, "ignored");
     memory_buf_t formatted;
     formatter->format(msg, formatted);
     REQUIRE(msg.color_range_start == 2);
@@ -124,7 +124,7 @@ TEST_CASE("color range test6", "[pattern_formatter]")
 {
     auto formatter = std::make_shared<spdlog::pattern_formatter>("**%$");
     std::string logger_name = "test";
-    spdlog::details::log_msg msg(logger_name, spdlog::level::info, "ignored");
+    spdlog::details::log_msg msg(logger_name, spdlog::level::forceable{spdlog::level::info, false}, "ignored");
     memory_buf_t formatted;
     formatter->format(msg, formatted);
     REQUIRE(msg.color_range_start == 0);
@@ -197,7 +197,7 @@ TEST_CASE("clone-default-formatter", "[pattern_formatter]")
     auto formatter_1 = std::make_shared<spdlog::pattern_formatter>();
     auto formatter_2 = formatter_1->clone();
     std::string logger_name = "test";
-    spdlog::details::log_msg msg(logger_name, spdlog::level::info, "some message");
+    spdlog::details::log_msg msg(logger_name, spdlog::level::forceable{spdlog::level::info, false}, "some message");
 
     memory_buf_t formatted_1;
     memory_buf_t formatted_2;
@@ -212,7 +212,7 @@ TEST_CASE("clone-default-formatter2", "[pattern_formatter]")
     auto formatter_1 = std::make_shared<spdlog::pattern_formatter>("%+");
     auto formatter_2 = formatter_1->clone();
     std::string logger_name = "test";
-    spdlog::details::log_msg msg(logger_name, spdlog::level::info, "some message");
+    spdlog::details::log_msg msg(logger_name, spdlog::level::forceable{spdlog::level::info, false}, "some message");
 
     memory_buf_t formatted_1;
     memory_buf_t formatted_2;
@@ -227,7 +227,7 @@ TEST_CASE("clone-formatter", "[pattern_formatter]")
     auto formatter_1 = std::make_shared<spdlog::pattern_formatter>("%D %X [%] [%n] %v");
     auto formatter_2 = formatter_1->clone();
     std::string logger_name = "test";
-    spdlog::details::log_msg msg(logger_name, spdlog::level::info, "some message");
+    spdlog::details::log_msg msg(logger_name, spdlog::level::forceable{spdlog::level::info, false}, "some message");
 
     memory_buf_t formatted_1;
     memory_buf_t formatted_2;
@@ -242,7 +242,7 @@ TEST_CASE("clone-formatter-2", "[pattern_formatter]")
     auto formatter_1 = std::make_shared<spdlog::pattern_formatter>("%D %X [%] [%n] %v", pattern_time_type::utc, "xxxxxx\n");
     auto formatter_2 = formatter_1->clone();
     std::string logger_name = "test2";
-    spdlog::details::log_msg msg(logger_name, spdlog::level::info, "some message");
+    spdlog::details::log_msg msg(logger_name, spdlog::level::forceable{spdlog::level::info, false}, "some message");
 
     memory_buf_t formatted_1;
     memory_buf_t formatted_2;
@@ -267,7 +267,7 @@ TEST_CASE("short filename formatter-1", "[pattern_formatter]")
     memory_buf_t formatted;
     std::string logger_name = "logger-name";
     spdlog::source_loc source_loc{test_path, 123, "some_func()"};
-    spdlog::details::log_msg msg(source_loc, "logger-name", spdlog::level::info, "Hello");
+    spdlog::details::log_msg msg(source_loc, "logger-name", spdlog::level::forceable{spdlog::level::info, false}, "Hello");
     formatter.format(msg, formatted);
     REQUIRE(fmt::to_string(formatted) == "myfile.cpp");
 }
@@ -278,7 +278,7 @@ TEST_CASE("short filename formatter-2", "[pattern_formatter]")
     memory_buf_t formatted;
     std::string logger_name = "logger-name";
     spdlog::source_loc source_loc{"myfile.cpp", 123, "some_func()"};
-    spdlog::details::log_msg msg(source_loc, "logger-name", spdlog::level::info, "Hello");
+    spdlog::details::log_msg msg(source_loc, "logger-name", spdlog::level::forceable{spdlog::level::info, false}, "Hello");
     formatter.format(msg, formatted);
     REQUIRE(fmt::to_string(formatted) == "myfile.cpp:123");
 }
@@ -289,7 +289,7 @@ TEST_CASE("short filename formatter-3", "[pattern_formatter]")
     memory_buf_t formatted;
     std::string logger_name = "logger-name";
     spdlog::source_loc source_loc{"", 123, "some_func()"};
-    spdlog::details::log_msg msg(source_loc, "logger-name", spdlog::level::info, "Hello");
+    spdlog::details::log_msg msg(source_loc, "logger-name", spdlog::level::forceable{spdlog::level::info, false}, "Hello");
     formatter.format(msg, formatted);
     REQUIRE(fmt::to_string(formatted) == " Hello");
 }
@@ -300,7 +300,7 @@ TEST_CASE("full filename formatter", "[pattern_formatter]")
     memory_buf_t formatted;
     std::string logger_name = "logger-name";
     spdlog::source_loc source_loc{test_path, 123, "some_func()"};
-    spdlog::details::log_msg msg(source_loc, "logger-name", spdlog::level::info, "Hello");
+    spdlog::details::log_msg msg(source_loc, "logger-name", spdlog::level::forceable{spdlog::level::info, false}, "Hello");
     formatter.format(msg, formatted);
     REQUIRE(fmt::to_string(formatted) == test_path);
 }