Fastly Compute C++ SDK
Loading...
Searching...
No Matches
log.h
Go to the documentation of this file.
1#ifndef FASTLY_LOG_H
2#define FASTLY_LOG_H
3
4#include <fastly/error.h>
5#include <fastly/sdk-sys.h>
6#include <format>
7#include <string>
8#include <string_view>
9
192namespace fastly::log {
193
194using LogLevel = fastly::sys::log::LogLevel;
195using LogLevelFilter = fastly::sys::log::LogLevelFilter;
196
209template <typename... Args>
210void error(std::format_string<Args...> fmt, Args &&...args) {
211 fastly::sys::log::f_log_log(fastly::sys::log::LogLevel::Error,
212 std::format(fmt, std::forward<Args>(args)...));
213}
214
231template <typename... Args>
232void error_to(std::string_view dest, std::format_string<Args...> fmt,
233 Args &&...args) {
234 fastly::sys::log::f_log_log_to(static_cast<std::string>(dest),
235 fastly::sys::log::LogLevel::Error,
236 std::format(fmt, std::forward<Args>(args)...));
237}
238
251template <typename... Args>
252void warn(std::format_string<Args...> fmt, Args &&...args) {
253 fastly::sys::log::f_log_log(fastly::sys::log::LogLevel::Warn,
254 std::format(fmt, std::forward<Args>(args)...));
255}
256
273template <typename... Args>
274void warn_to(std::string_view dest, std::format_string<Args...> fmt,
275 Args &&...args) {
276 fastly::sys::log::f_log_log_to(static_cast<std::string>(dest),
277 fastly::sys::log::LogLevel::Warn,
278 std::format(fmt, std::forward<Args>(args)...));
279}
280
293template <typename... Args>
294void info(std::format_string<Args...> fmt, Args &&...args) {
295 fastly::sys::log::f_log_log(fastly::sys::log::LogLevel::Info,
296 std::format(fmt, std::forward<Args>(args)...));
297}
298
315template <typename... Args>
316void info_to(std::string_view dest, std::format_string<Args...> fmt,
317 Args &&...args) {
318 fastly::sys::log::f_log_log_to(static_cast<std::string>(dest),
319 fastly::sys::log::LogLevel::Info,
320 std::format(fmt, std::forward<Args>(args)...));
321}
322
335template <typename... Args>
336void debug(std::format_string<Args...> fmt, Args &&...args) {
337 fastly::sys::log::f_log_log(fastly::sys::log::LogLevel::Debug,
338 std::format(fmt, std::forward<Args>(args)...));
339}
340
357template <typename... Args>
358void debug_to(std::string_view dest, std::format_string<Args...> fmt,
359 Args &&...args) {
360 fastly::sys::log::f_log_log_to(static_cast<std::string>(dest),
361 fastly::sys::log::LogLevel::Debug,
362 std::format(fmt, std::forward<Args>(args)...));
363}
364
377template <typename... Args>
378void trace(std::format_string<Args...> fmt, Args &&...args) {
379 fastly::sys::log::f_log_log(fastly::sys::log::LogLevel::Trace,
380 std::format(fmt, std::forward<Args>(args)...));
381}
382
399template <typename... Args>
400void trace_to(std::string_view dest, std::format_string<Args...> fmt,
401 Args &&...args) {
402 fastly::sys::log::f_log_log_to(static_cast<std::string>(dest),
403 fastly::sys::log::LogLevel::Trace,
404 std::format(fmt, std::forward<Args>(args)...));
405}
406
409
414
415class LoggerBuilder;
416
425class Endpoint {
426 friend LoggerBuilder;
427 friend void init_simple(Endpoint endpoint, LogLevelFilter level);
428
429public:
431 std::string name();
432
443 static fastly::expected<Endpoint> from_name(std::string_view name);
444
445private:
446 Endpoint(rust::Box<fastly::sys::log::Endpoint> e) : ep(std::move(e)) {};
447 rust::Box<fastly::sys::log::Endpoint> ep;
448};
449
460void init_simple(Endpoint endpoint, LogLevelFilter level);
461void init_simple(std::string_view endpoint, LogLevelFilter level);
462void init_simple(Endpoint endpoint);
463void init_simple(std::string_view endpoint);
464
471public:
476 LoggerBuilder() : lb(fastly::sys::log::m_static_log_logger_builder_new()) {}
477
488 LoggerBuilder endpoint(std::string_view endpoint) &&;
489
508 LogLevelFilter level) &&;
509
535
566 LogLevel level) &&;
567
588
598 LoggerBuilder echo_stdout(bool enabled) &&;
599
609 LoggerBuilder echo_stderr(bool enabled) &&;
610
623 void init();
624
625private:
626 LoggerBuilder(rust::Box<fastly::sys::log::LoggerBuilder> l)
627 : lb(std::move(l)) {};
628 rust::Box<fastly::sys::log::LoggerBuilder> lb;
629};
630
631} // namespace fastly::log
632
633#endif
Definition log.h:425
std::string name()
Get the name of an Endpoint.
friend void init_simple(Endpoint endpoint, LogLevelFilter level)
static fastly::expected< Endpoint > from_name(std::string_view name)
Definition log.h:470
LoggerBuilder endpoint_level(Endpoint endpoint, LogLevelFilter level) &&
LoggerBuilder default_level_endpoint(Endpoint endpoint, LogLevel level) &&
LoggerBuilder endpoint(Endpoint endpoint) &&
LoggerBuilder endpoint(std::string_view endpoint) &&
LoggerBuilder echo_stdout(bool enabled) &&
LoggerBuilder max_level(LogLevelFilter level) &&
LoggerBuilder default_endpoint(std::string_view endpoint) &&
LoggerBuilder default_endpoint(Endpoint endpoint) &&
LoggerBuilder()
Definition log.h:476
LoggerBuilder default_level_endpoint(std::string_view endpoint, LogLevel level) &&
LoggerBuilder echo_stderr(bool enabled) &&
LoggerBuilder endpoint_level(std::string_view endpoint, LogLevelFilter level) &&
tl::expected< T, FastlyError > expected
Definition error.h:25
Definition log.h:192
void debug(std::format_string< Args... > fmt, Args &&...args)
Definition log.h:336
void warn_to(std::string_view dest, std::format_string< Args... > fmt, Args &&...args)
Definition log.h:274
fastly::sys::log::LogLevelFilter LogLevelFilter
Definition log.h:195
void set_max_level(LogLevelFilter level)
Set the global maximum log level.
void error_to(std::string_view dest, std::format_string< Args... > fmt, Args &&...args)
Definition log.h:232
void info_to(std::string_view dest, std::format_string< Args... > fmt, Args &&...args)
Definition log.h:316
void init_simple(Endpoint endpoint, LogLevelFilter level)
void warn(std::format_string< Args... > fmt, Args &&...args)
Definition log.h:252
void debug_to(std::string_view dest, std::format_string< Args... > fmt, Args &&...args)
Definition log.h:358
fastly::sys::log::LogLevel LogLevel
Definition log.h:194
void error(std::format_string< Args... > fmt, Args &&...args)
Definition log.h:210
LogLevelFilter max_level()
void trace(std::format_string< Args... > fmt, Args &&...args)
Definition log.h:378
void info(std::format_string< Args... > fmt, Args &&...args)
Definition log.h:294
void trace_to(std::string_view dest, std::format_string< Args... > fmt, Args &&...args)
Definition log.h:400
Definition backend.h:13
Definition async_reqs.cpp:6