Coverage Report

Created: 2025-07-01 06:18

/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