ASP.NET の使用または API の呼び出し

Stackdriver Logging クライアント ライブラリを使用するには、次の 3 つの方法があります。

オプション 1: ASP.NET コア統合を使用する

Google.Cloud.Diagnostics.AspNetCore は、標準の ASP.NET ログを Stackdriver Logging に送信するライブラリです。

Google.Cloud.Diagnostics.AspNetCore を使用してロギングを開始するには、次のコマンドのいずれかを使用してライブラリをインストールします。

パッケージ マネージャー

PM> Install-Package Google.Cloud.Diagnostics.AspNetCore -Version 2.0.1

.NET CLI

> dotnet add package Google.Cloud.Diagnostics.AspNetCore --version 2.0.1

次の変更を加えて Startup.cs ファイルを編集します。

  1. Startup.cs の先頭に次の using ステートメントを追加します。

    using Google.Cloud.Diagnostics.AspNetCore;
    using Microsoft.Extensions.Logging;
    
  2. Configure 関数を変更します。ILoggerFactory loggerFactory を追加し、loggerFactory.AddGoogle("YOUR-PROJECT-ID") への呼び出しを追加します。

    public void Configure(IApplicationBuilder app, IHostingEnvironment env,
        ILoggerFactory loggerFactory)
    {
        // Log to Google.
        loggerFactory.AddGoogle("YOUR-PROJECT-ID");
    
  3. Visual Studio でコードをコンパイルして実行します。Stackdriver Logging のログビューアの Global リソースの下にログエントリが表示されていることを確認します。

    ログビューアに移動

オプション 2: Log4Net 統合を使用する

Log4Net は Apache ライブラリで、ログ ステートメントをさまざまな出力先に出力できます。

Log4Net 統合を使用してロギングを開始するには、次のコマンドで Google.Cloud.Logging.Log4Net ライブラリをインストールします。

    PM> Install-Package Google.Cloud.Logging.Log4Net -Version 2.2.1

次に、以下の操作を行います。

  1. 以下のコードが含まれている Log4Net XML 構成セクションを、ウェブ アプリケーションの Web.config ファイルに追加します。

    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
      </configSections>
      <log4net>
        <appender name="CloudLogger" type="Google.Cloud.Logging.Log4Net.GoogleStackdriverAppender,Google.Cloud.Logging.Log4Net">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message" />
          </layout>
          <projectId value="YOUR-PROJECT-ID" />
          <logId value="mySampleLog" />
        </appender>
        <root>
          <level value="ALL" />
          <appender-ref ref="CloudLogger" />
        </root>
      </log4net>
  2. 以下のコード行をアプリケーションの Global.asax.cs ファイルに追加して、Stackdriver Logging を使用するように Log4net を構成します。

    log4net.Config.XmlConfigurator.Configure();
    

    上記の行をコードに追加したら、Global.asax.csApplication_Start() メソッドを以下のように変更します。

            protected void Application_Start()
            {
                GlobalConfiguration.Configure(WebApiConfig.Register);
    
                // Configure log4net to use Stackdriver logging from the XML configuration file.
                log4net.Config.XmlConfigurator.Configure();
            }
    
  3. log4net をアプリケーション コードで使用するには、以下のステートメントを追加してクライアント ライブラリを含めます。

    using log4net;
    
  4. 以下のコードをアプリケーションに追加すると、ログが書き込まれて Stackdriver のログビューアの Global リソースの下に表示されます。ログ名は Web.config ファイルで指定されています。

                        // Retrieve a logger for this context.
                        ILog log = LogManager.GetLogger(typeof(WebApiConfig));
    
                        // Log some information to Google Stackdriver Logging.
                        log.Info("Hello World.");
    
  5. Visual Studio でコードをコンパイルして実行します。Stackdriver Logging のログビューアの Global リソースの下にログエントリが表示されていることを確認します。

    ログビューアに移動

オプション 3: Stackdriver Logging API を使用してカスタムログを書き込む

代わりに、Stackdriver Logging API を直接呼び出してカスタムログを書き込むこともできます。

Google.Cloud.Logging.V2 を使用してロギングを開始するには、次のコマンドのいずれかを使用してライブラリをインストールします。

パッケージ マネージャー

PM> Install-Package Google.Cloud.Logging.V2 -Version 2.2.0

.NET CLI

> dotnet add package Google.Cloud.Logging.V2 --version 2.2.0

Stackdriver Logging クライアントをインストールしたら、以下のステートメントをアプリケーション コードに追加して、アプリケーションのログを Stackdriver Logging に送信できます。

using Google.Cloud.Logging.V2;
using Google.Cloud.Logging.Type;
using Google.Cloud.Api;

以下のメソッドをカスタマイズして、アプリケーション コードに追加します。

private void WriteLogEntry(string logId, string message)
{
    var client = LoggingServiceV2Client.Create();
    LogName logName = new LogName(s_projectId, logId);
    LogEntry logEntry = new LogEntry
    {
        LogName = logName.ToString(),
        Severity = LogSeverity.Info,
        TextPayload = $"{typeof(LoggingSample).FullName} - {message}"
    };
    MonitoredResource resource = new MonitoredResource { Type = "global" };
    IDictionary<string, string> entryLabels = new Dictionary<string, string>
    {
        { "size", "large" },
        { "color", "red" }
    };
    client.WriteLogEntries(LogNameOneof.From(logName), resource, entryLabels,
        new[] { logEntry }, _retryAWhile);
    Console.WriteLine($"Created log entry in log-id: {logId}.");
}

WriteLogEntry() を呼び出すロギングコードをいくつか作成します。ログエントリが生成されて、ログビューアの Global リソースの下に表示されます。

ログビューアに移動

ログビューアの詳細については、ログの表示をご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。