.NET Core ではロギングに Microsoft.Extensions.Logging を使っていて、 コンソールや EventSource なんかによく出力していたんだけど、 今は Google Cloud Platform で遊んでいるので Stackdriver に保存したくなった。 NuGet 用に公式のパッケージがあるので導入は簡単。
名前に AspNetCore とあるが、.NET Core のコンソールアプリケーションでも普通に使えた。
using Google.Cloud.Diagnostics.AspNetCore; using Microsoft.Extensions.Logging; using System; using System.IO; namespace StackDriverSample { class Program { static void Main(string[] args) { Environment.SetEnvironmentVariable( "GOOGLE_APPLICATION_CREDENTIALS", Path.Combine(AppContext.BaseDirectory, "your-access-key.json")); var loggerFactory = new LoggerFactory() .AddConsole() .AddGoogle("your-project-name"); var logger = loggerFactory.CreateLogger<Program>(); logger.LogInformation("Hello, StackDriver!"); Console.ReadLine(); } } }
例えば将来 .NET Core + Docker + GKE という構成でアプリケーションを開発することになったら、 ログの保存先は Stackdriver が選択肢の筆頭なので、ブログにメモを残しておく。