/src/WasmEdge/lib/common/spdlog.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | // SPDX-License-Identifier: Apache-2.0 |
2 | | // SPDX-FileCopyrightText: 2019-2024 Second State INC |
3 | | |
4 | | #include "common/spdlog.h" |
5 | | |
6 | | #if defined(__clang_major__) && __clang_major__ >= 10 |
7 | | #pragma clang diagnostic push |
8 | | // Suppression can be removed after spdlog with fix is released |
9 | | // https://github.com/gabime/spdlog/pull/3198 |
10 | | #pragma clang diagnostic ignored "-Wextra-semi" |
11 | | #endif |
12 | | #include <spdlog/sinks/callback_sink.h> |
13 | | #if defined(__clang_major__) && __clang_major__ >= 10 |
14 | | #pragma clang diagnostic pop |
15 | | #endif |
16 | | #ifdef _WIN32 |
17 | | #include <spdlog/sinks/wincolor_sink.h> |
18 | | using color_sink_t = spdlog::sinks::wincolor_stdout_sink_mt; |
19 | | #else |
20 | | #include <spdlog/sinks/ansicolor_sink.h> |
21 | | using color_sink_t = spdlog::sinks::ansicolor_stdout_sink_mt; |
22 | | #endif |
23 | | |
24 | | using namespace std::literals; |
25 | | |
26 | | namespace WasmEdge { |
27 | | namespace Log { |
28 | | |
29 | 0 | void setLogOff() { spdlog::set_level(spdlog::level::off); } |
30 | | |
31 | 0 | void setTraceLoggingLevel() { spdlog::set_level(spdlog::level::trace); } |
32 | | |
33 | 0 | void setDebugLoggingLevel() { spdlog::set_level(spdlog::level::debug); } |
34 | | |
35 | 0 | void setInfoLoggingLevel() { spdlog::set_level(spdlog::level::info); } |
36 | | |
37 | 0 | void setWarnLoggingLevel() { spdlog::set_level(spdlog::level::warn); } |
38 | | |
39 | 0 | void setErrorLoggingLevel() { spdlog::set_level(spdlog::level::err); } |
40 | | |
41 | 0 | void setCriticalLoggingLevel() { spdlog::set_level(spdlog::level::critical); } |
42 | | |
43 | | void setLoggingCallback( |
44 | 0 | std::function<void(const spdlog::details::log_msg &)> Callback) { |
45 | 0 | if (Callback) { |
46 | 0 | auto Callback_sink = |
47 | 0 | std::make_shared<spdlog::sinks::callback_sink_mt>(Callback); |
48 | 0 | spdlog::set_default_logger( |
49 | 0 | std::make_shared<spdlog::logger>("WasmEdge"s, Callback_sink)); |
50 | 0 | } else { |
51 | 0 | spdlog::set_default_logger(std::make_shared<spdlog::logger>( |
52 | 0 | ""s, std::make_shared<color_sink_t>())); |
53 | 0 | } |
54 | 0 | } |
55 | | |
56 | | } // namespace Log |
57 | | } // namespace WasmEdge |