Skip to content

Commit d6954bd

Browse files
committed
Convert console/file logger creators to free functions
fly::logger::Logger::create_console_logger was just a bit verbose.
1 parent b269104 commit d6954bd

File tree

6 files changed

+140
-150
lines changed

6 files changed

+140
-150
lines changed

bench/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ CATCH_REGISTER_REPORTER("libfly", SilentReporter)
7070

7171
int main(int argc, char **argv)
7272
{
73-
fly::logger::Logger::set_default_logger(fly::logger::Logger::create_logger(
73+
fly::logger::Logger::set_default_logger(fly::logger::Logger::create(
7474
"silent",
7575
std::make_shared<fly::logger::LoggerConfig>(),
7676
std::make_unique<DropSink>()));

fly/logger/logger.cpp

+60-60
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,63 @@
1111

1212
namespace fly::logger {
1313

14+
//==================================================================================================
15+
std::shared_ptr<Logger> create_file_logger(
16+
std::string name,
17+
std::shared_ptr<LoggerConfig> logger_config,
18+
std::shared_ptr<fly::coders::CoderConfig> coder_config,
19+
std::filesystem::path logger_directory)
20+
{
21+
return create_file_logger(
22+
std::move(name),
23+
nullptr,
24+
std::move(logger_config),
25+
std::move(coder_config),
26+
std::move(logger_directory));
27+
}
28+
29+
//==================================================================================================
30+
std::shared_ptr<Logger> create_file_logger(
31+
std::string name,
32+
std::shared_ptr<fly::task::SequencedTaskRunner> task_runner,
33+
std::shared_ptr<LoggerConfig> logger_config,
34+
std::shared_ptr<fly::coders::CoderConfig> coder_config,
35+
std::filesystem::path logger_directory)
36+
{
37+
auto sink = std::make_unique<detail::FileSink>(
38+
logger_config,
39+
std::move(coder_config),
40+
std::move(logger_directory));
41+
42+
return Logger::create(
43+
std::move(name),
44+
std::move(task_runner),
45+
std::move(logger_config),
46+
std::move(sink));
47+
}
48+
49+
//==================================================================================================
50+
std::shared_ptr<Logger>
51+
create_console_logger(std::string name, std::shared_ptr<LoggerConfig> logger_config)
52+
{
53+
return create_console_logger(std::move(name), nullptr, logger_config);
54+
}
55+
56+
//==================================================================================================
57+
std::shared_ptr<Logger> create_console_logger(
58+
std::string name,
59+
std::shared_ptr<fly::task::SequencedTaskRunner> task_runner,
60+
std::shared_ptr<LoggerConfig> logger_config)
61+
{
62+
auto sink = std::make_unique<detail::ConsoleSink>();
63+
64+
return Logger::create(
65+
std::move(name),
66+
std::move(task_runner),
67+
std::move(logger_config),
68+
std::move(sink));
69+
}
70+
1471
//==================================================================================================
1572
Logger::Logger(
1673
std::string name,
@@ -32,16 +89,16 @@ Logger::~Logger()
3289
}
3390

3491
//==================================================================================================
35-
std::shared_ptr<Logger> Logger::create_logger(
92+
std::shared_ptr<Logger> Logger::create(
3693
std::string name,
3794
std::shared_ptr<LoggerConfig> logger_config,
3895
std::unique_ptr<Sink> &&sink)
3996
{
40-
return create_logger(std::move(name), nullptr, std::move(logger_config), std::move(sink));
97+
return create(std::move(name), nullptr, std::move(logger_config), std::move(sink));
4198
}
4299

43100
//==================================================================================================
44-
std::shared_ptr<Logger> Logger::create_logger(
101+
std::shared_ptr<Logger> Logger::create(
45102
std::string name,
46103
std::shared_ptr<fly::task::SequencedTaskRunner> task_runner,
47104
std::shared_ptr<LoggerConfig> logger_config,
@@ -79,63 +136,6 @@ std::shared_ptr<Logger> Logger::create_logger(
79136
return nullptr;
80137
}
81138

82-
//==================================================================================================
83-
std::shared_ptr<Logger> Logger::create_file_logger(
84-
std::string name,
85-
std::shared_ptr<LoggerConfig> logger_config,
86-
std::shared_ptr<fly::coders::CoderConfig> coder_config,
87-
std::filesystem::path logger_directory)
88-
{
89-
return create_file_logger(
90-
std::move(name),
91-
nullptr,
92-
std::move(logger_config),
93-
std::move(coder_config),
94-
std::move(logger_directory));
95-
}
96-
97-
//==================================================================================================
98-
std::shared_ptr<Logger> Logger::create_file_logger(
99-
std::string name,
100-
std::shared_ptr<fly::task::SequencedTaskRunner> task_runner,
101-
std::shared_ptr<LoggerConfig> logger_config,
102-
std::shared_ptr<fly::coders::CoderConfig> coder_config,
103-
std::filesystem::path logger_directory)
104-
{
105-
auto sink = std::make_unique<detail::FileSink>(
106-
logger_config,
107-
std::move(coder_config),
108-
std::move(logger_directory));
109-
110-
return create_logger(
111-
std::move(name),
112-
std::move(task_runner),
113-
std::move(logger_config),
114-
std::move(sink));
115-
}
116-
117-
//==================================================================================================
118-
std::shared_ptr<Logger>
119-
Logger::create_console_logger(std::string name, std::shared_ptr<LoggerConfig> logger_config)
120-
{
121-
return create_console_logger(std::move(name), nullptr, logger_config);
122-
}
123-
124-
//==================================================================================================
125-
std::shared_ptr<Logger> Logger::create_console_logger(
126-
std::string name,
127-
std::shared_ptr<fly::task::SequencedTaskRunner> task_runner,
128-
std::shared_ptr<LoggerConfig> logger_config)
129-
{
130-
auto sink = std::make_unique<detail::ConsoleSink>();
131-
132-
return create_logger(
133-
std::move(name),
134-
std::move(task_runner),
135-
std::move(logger_config),
136-
std::move(sink));
137-
}
138-
139139
//==================================================================================================
140140
void Logger::set_default_logger(std::shared_ptr<Logger> default_logger)
141141
{

fly/logger/logger.hpp

+62-61
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,73 @@ class SequencedTaskRunner;
109109

110110
namespace fly::logger {
111111

112+
class Logger;
112113
class LoggerConfig;
113114
class Sink;
114115

115116
namespace detail {
116117
class Registry;
117118
} // namespace detail
118119

120+
/**
121+
* Create a synchronous file logger.
122+
*
123+
* @param name Name of the logger to create.
124+
* @param logger_config Reference to the logger configuration.
125+
* @param coder_config Reference to the coder configuration.
126+
* @param logger_directory Path to store log files.
127+
*
128+
* @return The created logger, or null if the logger could not be initialized.
129+
*/
130+
std::shared_ptr<Logger> create_file_logger(
131+
std::string name,
132+
std::shared_ptr<LoggerConfig> logger_config,
133+
std::shared_ptr<fly::coders::CoderConfig> coder_config,
134+
std::filesystem::path logger_directory);
135+
136+
/**
137+
* Create an asynchronous file logger.
138+
*
139+
* @param name Name of the logger to create.
140+
* @param task_runner The sequence on which logs are streamed.
141+
* @param logger_config Reference to the logger configuration.
142+
* @param coder_config Reference to the coder configuration.
143+
* @param logger_directory Path to store log files.
144+
*
145+
* @return The created logger, or null if the logger could not be initialized.
146+
*/
147+
std::shared_ptr<Logger> create_file_logger(
148+
std::string name,
149+
std::shared_ptr<fly::task::SequencedTaskRunner> task_runner,
150+
std::shared_ptr<LoggerConfig> logger_config,
151+
std::shared_ptr<fly::coders::CoderConfig> coder_config,
152+
std::filesystem::path logger_directory);
153+
154+
/**
155+
* Create a synchronous console logger.
156+
*
157+
* @param name Name of the logger to create.
158+
* @param logger_config Reference to the logger configuration.
159+
*
160+
* @return The created logger, or null if the logger could not be initialized.
161+
*/
162+
std::shared_ptr<Logger>
163+
create_console_logger(std::string name, std::shared_ptr<LoggerConfig> logger_config);
164+
165+
/**
166+
* Create an asynchronous console logger.
167+
*
168+
* @param name Name of the logger to create.
169+
* @param task_runner The sequence on which logs are streamed.
170+
* @param logger_config Reference to the logger configuration.
171+
*
172+
* @return The created logger, or null if the logger could not be initialized.
173+
*/
174+
std::shared_ptr<Logger> create_console_logger(
175+
std::string name,
176+
std::shared_ptr<fly::task::SequencedTaskRunner> task_runner,
177+
std::shared_ptr<LoggerConfig> logger_config);
178+
119179
/**
120180
* Logging class to provide configurable instrumentation. There are 4 levels of instrumentation:
121181
*
@@ -159,7 +219,7 @@ class Logger : public std::enable_shared_from_this<Logger>
159219
*
160220
* @return The created logger, or null if the logger could not be initialized.
161221
*/
162-
static std::shared_ptr<Logger> create_logger(
222+
static std::shared_ptr<Logger> create(
163223
std::string name,
164224
std::shared_ptr<LoggerConfig> logger_config,
165225
std::unique_ptr<Sink> &&sink);
@@ -174,71 +234,12 @@ class Logger : public std::enable_shared_from_this<Logger>
174234
*
175235
* @return The created logger, or null if the logger could not be initialized.
176236
*/
177-
static std::shared_ptr<Logger> create_logger(
237+
static std::shared_ptr<Logger> create(
178238
std::string name,
179239
std::shared_ptr<fly::task::SequencedTaskRunner> task_runner,
180240
std::shared_ptr<LoggerConfig> logger_config,
181241
std::unique_ptr<Sink> &&sink);
182242

183-
/**
184-
* Create a synchronous file logger.
185-
*
186-
* @param name Name of the logger to create.
187-
* @param logger_config Reference to the logger configuration.
188-
* @param coder_config Reference to the coder configuration.
189-
* @param logger_directory Path to store log files.
190-
*
191-
* @return The created logger, or null if the logger could not be initialized.
192-
*/
193-
static std::shared_ptr<Logger> create_file_logger(
194-
std::string name,
195-
std::shared_ptr<LoggerConfig> logger_config,
196-
std::shared_ptr<fly::coders::CoderConfig> coder_config,
197-
std::filesystem::path logger_directory);
198-
199-
/**
200-
* Create an asynchronous file logger.
201-
*
202-
* @param name Name of the logger to create.
203-
* @param task_runner The sequence on which logs are streamed.
204-
* @param logger_config Reference to the logger configuration.
205-
* @param coder_config Reference to the coder configuration.
206-
* @param logger_directory Path to store log files.
207-
*
208-
* @return The created logger, or null if the logger could not be initialized.
209-
*/
210-
static std::shared_ptr<Logger> create_file_logger(
211-
std::string name,
212-
std::shared_ptr<fly::task::SequencedTaskRunner> task_runner,
213-
std::shared_ptr<LoggerConfig> logger_config,
214-
std::shared_ptr<fly::coders::CoderConfig> coder_config,
215-
std::filesystem::path logger_directory);
216-
217-
/**
218-
* Create a synchronous console logger.
219-
*
220-
* @param name Name of the logger to create.
221-
* @param logger_config Reference to the logger configuration.
222-
*
223-
* @return The created logger, or null if the logger could not be initialized.
224-
*/
225-
static std::shared_ptr<Logger>
226-
create_console_logger(std::string name, std::shared_ptr<LoggerConfig> logger_config);
227-
228-
/**
229-
* Create an asynchronous console logger.
230-
*
231-
* @param name Name of the logger to create.
232-
* @param task_runner The sequence on which logs are streamed.
233-
* @param logger_config Reference to the logger configuration.
234-
*
235-
* @return The created logger, or null if the logger could not be initialized.
236-
*/
237-
static std::shared_ptr<Logger> create_console_logger(
238-
std::string name,
239-
std::shared_ptr<fly::task::SequencedTaskRunner> task_runner,
240-
std::shared_ptr<LoggerConfig> logger_config);
241-
242243
/**
243244
* Set the default logger instance for the LOG* macro functions. If the provided logger is null,
244245
* the default logger is reset to the initial synchronous console logger.

test/logger/console_logger.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111

1212
CATCH_TEST_CASE("ConsoleLogger", "[logger]")
1313
{
14-
auto logger = fly::logger::Logger::create_console_logger(
15-
"test",
16-
std::make_shared<fly::logger::LoggerConfig>());
14+
auto logger =
15+
fly::logger::create_console_logger("test", std::make_shared<fly::logger::LoggerConfig>());
1716

1817
CATCH_SECTION("Debug log points")
1918
{

test/logger/file_logger.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ CATCH_TEST_CASE("FileLogger", "[logger]")
106106
auto coder_config = std::make_shared<MutableCoderConfig>();
107107
fly::test::PathUtil::ScopedTempDirectory path;
108108

109-
auto logger =
110-
fly::logger::Logger::create_file_logger("test", logger_config, coder_config, path());
109+
auto logger = fly::logger::create_file_logger("test", logger_config, coder_config, path());
111110

112111
CATCH_SECTION("Valid logger file paths should be created after creating logger")
113112
{
@@ -119,8 +118,7 @@ CATCH_TEST_CASE("FileLogger", "[logger]")
119118

120119
CATCH_SECTION("Cannot start logger with a bad file path")
121120
{
122-
logger =
123-
fly::logger::Logger::create_file_logger("test", logger_config, coder_config, __FILE__);
121+
logger = fly::logger::create_file_logger("test", logger_config, coder_config, __FILE__);
124122
CATCH_CHECK(logger == nullptr);
125123
}
126124

0 commit comments

Comments
 (0)