Chrysalis - Logging
Toggle main menu visibility
Loading...
Searching...
No Matches
Logger.h
Go to the documentation of this file.
1
#ifndef CHRYSALIS_LOGGER_H
2
#define CHRYSALIS_LOGGER_H
3
4
#include <spdlog/spdlog.h>
5
#include <spdlog/sinks/basic_file_sink.h>
6
7
#include "
LoggerFormatter.h
"
8
#include "
LoggingLibraryExport.h
"
9
#include "
formatters/NameFlagFormatter.h
"
10
#include "
formatters/LevelFlagFormatter.h
"
11
12
namespace
Logging
{
13
class
LOGGING
Logger {
14
friend
class
LoggerRegistry
;
15
explicit
Logger(
const
std::string& loggingDirectory,
const
char
* name);
16
public
:
17
constexpr
static
short
LOGGER_NAME_LENGTH
= 20;
18
19
const
char
*
getName
()
const
;
20
21
spdlog::level::level_enum
getLevel
()
const
;
22
void
setLevel
(spdlog::level::level_enum level);
23
24
void
flush
()
const
;
25
void
addSink
(
const
std::shared_ptr<spdlog::sinks::sink>& sink);
26
27
template
<
typename
... Args>
28
void
log
(spdlog::level::level_enum lvl, spdlog::format_string_t<Args...> fmt, Args &&... args) {
29
logger_.log(lvl, fmt, std::forward<Args>(args)...);
30
}
31
32
template
<
typename
... Args>
33
void
trace
(spdlog::format_string_t<Args...> fmt, Args &&... args) {
34
log
(spdlog::level::trace, fmt, std::forward<Args>(args)...);
35
}
36
37
template
<
typename
... Args>
38
void
debug
(spdlog::format_string_t<Args...> fmt, Args &&... args) {
39
log
(spdlog::level::debug, fmt, std::forward<Args>(args)...);
40
}
41
42
template
<
typename
... Args>
43
void
info
(spdlog::format_string_t<Args...> fmt, Args &&... args) {
44
log
(spdlog::level::info, fmt, std::forward<Args>(args)...);
45
}
46
47
template
<
typename
... Args>
48
void
warn
(spdlog::format_string_t<Args...> fmt, Args &&... args) {
49
log
(spdlog::level::warn, fmt, std::forward<Args>(args)...);
50
}
51
52
template
<
typename
... Args>
53
void
error
(spdlog::format_string_t<Args...> fmt, Args &&... args) {
54
log
(spdlog::level::err, fmt, std::forward<Args>(args)...);
55
}
56
57
template
<
typename
... Args>
58
void
critical
(spdlog::format_string_t<Args...> fmt, Args &&... args) {
59
log
(spdlog::level::critical, fmt, std::forward<Args>(args)...);
60
spdlog::shutdown();
61
exit(1);
62
}
63
64
private
:
65
template
<
typename
Mutex>
66
static
std::shared_ptr<spdlog::sinks::basic_file_sink<Mutex>> createFileSink(
const
std::string& loggingDirectory,
const
std::string& name) {
67
const
auto
sink = std::make_shared<spdlog::sinks::basic_file_sink<Mutex>>(loggingDirectory +
"/"
+ name +
".log"
,
true
);
68
LoggerFormatter<NameFlagFormatter, LevelFlagFormatter>::apply
(sink);
69
return
sink;
70
}
71
72
void
setLoggingDirectory(
const
std::string& loggingDirectory);
73
void
setCommonFileSink(
const
std::shared_ptr<spdlog::sinks::basic_file_sink_mt>& sink);
74
75
const
char
* name_;
76
77
spdlog::logger logger_;
78
std::shared_ptr<spdlog::sinks::basic_file_sink_mt> fileSink_;
79
};
80
}
81
82
#endif
//CHRYSALIS_LOGGER_H
LevelFlagFormatter.h
LoggerFormatter.h
LoggingLibraryExport.h
LOGGING
#define LOGGING
Definition
LoggingLibraryExport.h:11
NameFlagFormatter.h
Logging::LoggerFormatter::apply
static void apply(const std::shared_ptr< spdlog::sinks::sink > &sink)
Definition
LoggerFormatter.h:11
Logging::Logger::log
void log(spdlog::level::level_enum lvl, spdlog::format_string_t< Args... > fmt, Args &&... args)
Definition
Logger.h:28
Logging::Logger::error
void error(spdlog::format_string_t< Args... > fmt, Args &&... args)
Definition
Logger.h:53
Logging::Logger::critical
void critical(spdlog::format_string_t< Args... > fmt, Args &&... args)
Definition
Logger.h:58
Logging::Logger::getLevel
spdlog::level::level_enum getLevel() const
Definition
Logger.cpp:31
Logging::Logger::getName
const char * getName() const
Definition
Logger.cpp:27
Logging::Logger::addSink
void addSink(const std::shared_ptr< spdlog::sinks::sink > &sink)
Definition
Logger.cpp:23
Logging::Logger::flush
void flush() const
Definition
Logger.cpp:19
Logging::Logger::LoggerRegistry
friend class LoggerRegistry
Definition
Logger.h:14
Logging::Logger::info
void info(spdlog::format_string_t< Args... > fmt, Args &&... args)
Definition
Logger.h:43
Logging::Logger::setLevel
void setLevel(spdlog::level::level_enum level)
Definition
Logger.cpp:35
Logging::Logger::warn
void warn(spdlog::format_string_t< Args... > fmt, Args &&... args)
Definition
Logger.h:48
Logging::Logger::trace
void trace(spdlog::format_string_t< Args... > fmt, Args &&... args)
Definition
Logger.h:33
Logging::Logger::LOGGER_NAME_LENGTH
static constexpr short LOGGER_NAME_LENGTH
Definition
Logger.h:17
Logging::Logger::debug
void debug(spdlog::format_string_t< Args... > fmt, Args &&... args)
Definition
Logger.h:38
Logging
Definition
BaseConsoleUser.h:4
logging
include
Logger.h
Generated by
1.17.0