本文档介绍了如何开始使用 syslogger API。
组件清单依赖项
通过添加 在组件清单中添加以下代码:
{
include: [
"syslog/client.shard.cml"
],
...
}
如果 LogSink
连接失败,syslog 库将回退到 stderr
。
默认配置
全局日志记录器会在首次使用 API 时延迟实例化(更多
具体而言,在第一次调用 fx_log_get_logger
时)。默认
配置如下:
- 使用进程名称作为标记
- 将日志写入
fuchsia.logger.LogSink
- 最低日志级别:
FX_LOG_INFO
C 语言
BUILD.gn 依赖项
//zircon/public/lib/syslog
日志消息
FX_LOGF(INFO, "tag", "my msg: %d", 10);
FX_LOG(INFO, "tag", "my msg");
FX_LOGF(INFO, NULL, "my msg: %d", 10);
使用非默认配置
#include <lib/syslog/global.h>
int main(int argc, char** argv) {
fx_logger_config_t config = {
.min_severity = FX_LOG_INFO,
.tags = (const char * []) {"gtag", "gtag2"},
.num_tags = 2,
};
fx_log_reconfigure(&config);
}
参考文档
在 C++ 中
BUILD.gn 依赖项
//sdk/lib/syslog/cpp
日志消息
#include <lib/syslog/cpp/macros.h>
FX_LOGS(INFO) << "my message";
FX_LOGST(INFO, "tag") << "my message";
设置标记
默认情况下,使用进程名称作为标记,但可以通过
正在调用 fuchsia_logging::SetTags
。
#include <lib/syslog/cpp/log_settings.h>
int main(int argc, char** argv) {
fuchsia_logging::SetTags({"tag1", "tag2"});
}
设定设置
#include "<lib/syslog/cpp/log_settings.h>
int main(int argc, char** argv) {
fuchsia_logging::LogSettings settings = {
.min_log_level = fuchsia_logging::LOG_ERROR,
};
fuchsia_logging::SetLogSettings(settings, {"tag1", "tag2"});
}
通过命令行设置设置
#include "src/lib/fxl/command_line.h"
#include "src/lib/fxl/log_settings_command_line.h"
int main(int argc, char** argv) {
auto command_line = fxl::CommandLineFromArgcArgv(argc, argv);
fxl::SetLogSettingsFromCommandLine(command_line, {"my_program"});
}
使用从命令行初始化 syslog 的 GTest 主线程
使用 的默认配置无需初始化 Syslog如果您希望测试套件更改 (例如,--verbose),请使用:
//src/lib/fxl/test:gtest_main