|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
|
これは未公開の文書です Admission Controller 1.34-dev. |
ログ記録
Go SDKは、https://github.com/francoispqt/onelog[onelog]プロジェクトとほぼそのままで統合されます。
プロジェクトはこのライブラリを次のように選択しました:
-
WebAssemblyバイナリで動作します。 他の人気のあるログ記録ソリューションはWebAssemblyをターゲットにコンパイルできません。
-
優れたパフォーマンスを提供します。
-
構造化ログ記録をサポートしています。
ロガーを初期化する
ロガー構造体を初期化する必要があります。
この初期化をグローバル変数で行うことにより、ポリシーの2つの主要なエントリポイントからログを記録できます:validate`と`validate_settings。
メインパッケージでは、`main.go`でロガーの初期化が行われます:
var (
logWriter = kubewarden.KubewardenLogWriter{}
logger = onelog.New(
&logWriter,
onelog.ALL, // shortcut for onelog.DEBUG|onelog.INFO|onelog.WARN|onelog.ERROR|onelog.FATAL
)
)
ロガーの使用
これで、ポリシー内の必要な場所からログを記録するために`logger`オブジェクトを使用できます:
func validate(payload []byte) ([]byte, error) {
// ...
logger.Info("validating request")
// ...
}
構造化ログ記録を追加できます:
func validate(payload []byte) ([]byte, error) {
// ...
logger.WarnWithFields("logging something important", func(e onelog.Entry) {
e.String("one_field", "a value")
e.String("another_field", "another value")
})
// ...
}
詳細については、https://pkg.go.dev/github.com/francoispqt/onelog?utm_source=godoc[`onelog`ドキュメント]を参照できます。
ポリシーログはポリシー評価者に送信されます(例えば、kwctl`または`policy-server)、彼らはポリシーを代表してログを記録します。
彼らは、https://www.jaegertracing.io/[Jaeger]のような分散トレーシングを可能にする他のコンポーネントと相互運用可能なメカニズムを使用します。