使用 ASP.NET 或呼叫 API

您可以透過三種方式使用 Stackdriver Logging 用戶端程式庫:

選項 1:使用 ASP.NET Core 整合

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 Google.Cloud.Diagnostics.AspNetCore;
    using Microsoft.Extensions.Logging;
    
  2. 修改 Configure 函式。新增 ILoggerFactory loggerFactoryloggerFactory.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 記錄檢視器在通用資源下的記錄項目。

    前往記錄檢視器

選項 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 檔案,將 Log4net 設定為使用 Stackdriver Logging:

    log4net.Config.XmlConfigurator.Configure();
    

    將上一行新增至程式碼之後,將 Global.asax.cs 中的 Application_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 記錄檢視器的通用資源下。記錄名稱在 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 記錄檢視器的通用資源下的記錄項目。

    前往記錄檢視器

選項 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() 的一些記錄程式碼。產生的記錄項目會顯示在記錄檢視器的全球資源下:

前往記錄檢視器

如要進一步瞭解記錄檢視器,請參閱查看記錄一文。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Logging
需要協助嗎?請前往我們的支援網頁