AKS で動かしている Windows コンテナ内では、一応アプリが標準出力にカスタムログを書き込んでいる。
AKS のクラスタを作成したら Container Insights が有効になっていたので、保存場所になっている Log Analytics ワークスペースを見てみたら、ContainerLog テーブルにカスタムログが保存されていた。
以前問い合わせたときには、Windows コンテナでは標準出力に書き込んだカスタムログを Container Insights は収集してくれない、って言われたのに。改善されたってことだろうか。
Log Analytics ワークスペースに保存されているので、Azure.Monitor.Query を使って取得できた。
using Azure.Identity; using Azure.Monitor.Query; const string WorkspaceId = "Log Analytics ワークスペース ID"; var client = new LogsQueryClient(new DefaultAzureCredential()); // ContainerLog を検索 var result = await client.QueryWorkspaceAsync( workspaceId: WorkspaceId, query: @"ContainerLog | where LogEntrySource == ""stdout"" | where LogEntry has ""検索したいワード""", timeRange: new QueryTimeRange( start: DateTimeOffset.UtcNow.AddDays(-1), end: DateTimeOffset.UtcNow)); foreach (var row in result.Value.Table.Rows) { Console.WriteLine(row["LogEntry"]); } Console.ReadLine();