ASP.NET 사용 또는 API 호출

Cloud Logging 클라이언트 라이브러리를 사용하는 방법은 세 가지입니다.

옵션 1: ASP.NET 코어 통합 사용

Google.Cloud.Diagnostics.AspNetCore는 표준 ASP.NET 로그를 Cloud Logging으로 보내는 라이브러리입니다.

Google.Cloud.Diagnostics.AspNetCore를 사용하여 로깅을 시작하려면 다음 명령어 중 하나를 사용하여 라이브러리를 설치합니다.

패키지 관리자

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

.NET CLI

> dotnet add package Google.Cloud.Diagnostics.AspNetCore

그런 다음 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(app.ApplicationServices, "YOUR-PROJECT-ID");
    
  3. Visual Studio에서 코드를 컴파일하고 실행합니다. 로그 탐색기의 전역 리소스 아래에서 로그 항목을 확인합니다.

    로그 탐색기로 이동

옵션 2: Log4Net 통합 사용

Log4Net은 로그 구문을 다양한 출력 대상으로 출력할 수 있게 해주는 Apache 라이브러리입니다.

Log4Net 통합을 사용하여 로깅을 시작하려면 다음 명령어를 사용하여 Google.Cloud.Logging.Log4Net 라이브러리를 설치합니다.

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

그런 후 다음 작업을 수행합니다.

  1. 웹 애플리케이션의 Web.config 파일에 다음 코드를 포함하는 Log4Net XML 구성 섹션을 추가합니다.

    <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에서 Logging을 사용하도록 구성합니다.

    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. 로그 탐색기의 전역 리소스 아래에 표시되는 로그를 작성하는 애플리케이션에 다음 코드를 추가합니다. 로그 이름은 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에서 코드를 컴파일하고 실행합니다. Logging의 로그 뷰어에서 전역 리소스 아래의 로그 항목을 확인합니다.

    로그 탐색기로 이동

옵션 3: Logging API를 사용하여 커스텀 로그 작성

Cloud Logging API를 직접 호출하여 커스텀 로그를 작성할 수도 있습니다.

Google.Cloud.Logging.V2을 사용하여 로깅을 시작하려면 다음 명령어 중 하나로 라이브러리를 설치합니다.

패키지 관리자

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

.NET CLI

> dotnet add package Google.Cloud.Logging.V2

Logging 클라이언트가 설치되었으면 애플리케이션 코드에 다음 문을 추가하여 애플리케이션 로그를 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()를 호출하는 로깅 코드를 작성합니다. 그러면 그 결과로 생성되는 로그 항목이 로그 탐색기의 전역 리소스 아래에 위치하게 됩니다.

로그 탐색기로 이동

로그 탐색기에 대한 자세한 내용은 로그 탐색기 사용을 참조하세요.