summary refs log tree commit diff
path: root/src/Logging.cpp
blob: c6c1c502dc6efba6d4e921b31c8454fb0d59747f (plain) (blame)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "Logging.hpp"

#include <iostream>
#include <spdlog/sinks/file_sinks.h>

namespace {
std::shared_ptr<spdlog::logger> db_logger   = nullptr;
std::shared_ptr<spdlog::logger> net_logger  = nullptr;
std::shared_ptr<spdlog::logger> main_logger = nullptr;

constexpr auto MAX_FILE_SIZE = 1024 * 1024 * 6;
constexpr auto MAX_LOG_FILES = 3;
}

namespace log {
void
init(const std::string &file_path)
{
        auto file_sink = std::make_shared<spdlog::sinks::rotating_file_sink_mt>(
          file_path, MAX_FILE_SIZE, MAX_LOG_FILES);

        auto console_sink = std::make_shared<spdlog::sinks::stdout_sink_mt>();

        std::vector<spdlog::sink_ptr> sinks;
        sinks.push_back(file_sink);
        sinks.push_back(console_sink);

        net_logger  = std::make_shared<spdlog::logger>("net", std::begin(sinks), std::end(sinks));
        main_logger = std::make_shared<spdlog::logger>("main", std::begin(sinks), std::end(sinks));
        db_logger   = std::make_shared<spdlog::logger>("db", std::begin(sinks), std::end(sinks));
}

std::shared_ptr<spdlog::logger>
main()
{
        return main_logger;
}

std::shared_ptr<spdlog::logger>
net()
{
        return net_logger;
}

std::shared_ptr<spdlog::logger>
db()
{
        return db_logger;
}
}