系統記錄檔

本文說明如何開始使用 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 API

在 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

參考資料

C++ API
指令列初始化 API