本文說明如何開始使用 syslogger API。
元件資訊清單依附元件
加入 加入以下元件資訊清單:
{
include: [
"syslog/client.shard.cml"
],
...
}
如果 LogSink
連線失敗,Syslog 程式庫會改回使用 stderr
。
預設設定
在第一次使用 API 時,全域記錄器是在第一次使用 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"});
}
GTest 主鍵 (從指令列初始化的 syslog)
使用預設設定時不需要初始化 syslog。如果您希望測試套件變更設定 然後根據指令列引數 (例如:--verbose) 使用:
//src/lib/fxl/test:gtest_main