-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlog.hpp
32 lines (28 loc) · 1.29 KB
/
log.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once
#include <iostream>
#include <optional>
#include <magic_enum.hpp>
#include <magic_enum_format.hpp>
#include "spdlog/async.h"
#include "spdlog/sinks/ansicolor_sink.h"
#include "spdlog/sinks/basic_file_sink.h"
#include "spdlog/sinks/rotating_file_sink.h"
#include "spdlog/sinks/stdout_color_sinks.h"
#include "spdlog/spdlog.h"
std::optional<spdlog::logger> logger;
void init_log()
{
auto console_sink = std::make_shared<spdlog::sinks::ansicolor_stdout_sink_mt>();
console_sink->set_level(spdlog::level::info);
auto trace_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("./logs/trace_log", true);
trace_sink->set_level(spdlog::level::trace);
auto debug_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("./logs/debug_log", true);
debug_sink->set_level(spdlog::level::debug);
auto info_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("./logs/info_log", true);
info_sink->set_level(spdlog::level::info);
auto warn_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("./logs/warn_log", true);
warn_sink->set_level(spdlog::level::warn);
logger = spdlog::logger("logger", { console_sink, trace_sink, debug_sink, info_sink, warn_sink });
logger->set_level(spdlog::level::trace);
logger->flush_on(spdlog::level::debug);
}