This document explains how to get started with syslogger APIs.
//zircon/public/lib/syslog
Logger can only be initialized once.
#include <lib/syslog/global.h> int main(int argc, char** argv) { fx_log_init(); }
#include <lib/syslog/global.h> int main(int argc, char** argv) { fx_logger_config_t config = {.min_severity = FX_LOG_INFO, .console_fd = -1, .log_service_channel = ZX_HANDLE_INVALID, .tags = (const char * []) {"gtag", "gtag2"}, .num_tags = 2}; fx_log_init_with_config(&config); }
FX_LOGF(INFO, "tag", "my msg: %d", 10); FX_LOG(INFO, "tag", "my msg"); FX_LOGF(INFO, NULL, "my msg: %d", 10);
From garnet and above layers.
//garnet/public/lib/syslog/cpp
{ "sandbox": { "services": [ "fuchsia.logger.LogSink" ] } }
Logger can only be initialized once.
#include "lib/syslog/cpp/logger.h" int main(int argc, char** argv) { syslog::InitLogger(); }
#include "lib/syslog/cpp/logger.h" int main(int argc, char** argv) { syslog::InitLogger({"tag1", "tag2"}); }
#include "lib/fsl/syslogger/init.h" #include "src/lib/fxl/command_line.h" int main(int argc, char** argv) { auto command_line = fxl::CommandLineFromArgcArgv(argc, argv); fsl::InitLoggerFromCommandLine(command_line, {"my_program"}); }
FX_LOGS(INFO) << "my message"; FX_LOGST(INFO, "tag") << "my message";