Skip to content

FoxEventLogLogger

FoxEventLogLogger 클래스는 Fox Logging 이 기본으로 제공하는 로그들 중 하나 입니다. FoxEventLogLogger 는 Windows 이벤트 로그에 로그를 남기는 로거로서 Windows 플랫폼에서만 사용이 가능합니다.

Warning

FoxEventLogLogger 는 특정 플랫폼에 의존적인 기능이기 때문에 이 클래스와 관련 클래스는 NeoDEEX.Extensions 어셈블리(패키지)에 포함되어 있습니다. FoxEventLogLogger 를 사용하여 로그를 남기는 것은 권장되지 않습니다. Windows 플랫폼에서만 사용이 가능한 로거일 뿐만 아니라 Windows 이벤트 로그 자체가 가지는 제약 사항들(보안 권한, 크기 제약, 추가적인 이벤트 로그 설정 등) 때문 입니다.

다음 예제 코드는 기본값인 Application 이벤트 로그와 NeoDEEX 이벤트 소스를 사용하여 이벤트 로그를 기록하는 예제 코드 입니다.

IFoxLog log = FoxLogManager.GetLogger("EventLogLoggerSample");
log.Information("NeoDEEX FoxEventLogLogger Test...");

Information

전체 예제 코드는Windows 이벤트 로거 예제를 참고하십시요.

Windows 이벤트 로그

Configuration

"logging:providers" 혹은 "logging:loggers" 섹션에서 FoxEventLogLogger 의 생성 속성을 지정할 때 "properties" 속성에 사용할 수 있는 옵션은 다음과 같습니다.

{
  "logging": {
    "providers": {
      "EventLogProvider": {
        "providerType": "NeoDEEX.Extensions.Diagnostics.Loggers.FoxEventLogLoggerProvider",
        "properties": {
          "eventlog": "NeoDEEX5",
          "eventsource": "EventLogSample",
          "createlog": true
        }
      }
    },
    "loggers": {
      "EventLogLoggerSample": {
        "providerName": "EventLogProvider",
        "filter": "Verbose"
      }
    }
  }
}
  • "eventlog" 속성

    로그를 기록할 이벤트 로그 이름입니다. 기본값은 Application 로그 입니다.

  • "eventsource" 속성

    로그가 기록될 때 사용될 이벤트 소스 이름 입니다. 기본값은 NeoDEEX 입니다.

    Warning

    NeoDEEX 이벤트 소스는 Windows 이벤트 로그에 기본적으로 등록되어 있지 않기 때문에 보안 오류가 발생할 수 있습니다.

  • "createlog" 속성

    이벤트 로그 및 이벤트 소스가 존재하지 않는 경우 이벤트 로그, 이벤트 소스를 생성합니다. 기본값은 false 입니다.

    Warning

    이벤트 로그 및 이벤트 소스를 생성하기 위해서는 관리자 권한이 필요합니다.

커스텀 이벤트 로그 사용

Creating Event Log and Source

Windows 이벤트 로그에 로그를 기록하기 위해서는 이벤트 로그와 이벤트 소스를 명시해야 하며 이벤트 로그와 이벤트 소스는 사전에 생성 및 등록되어 있어야 합니다. FoxEventLogLogger"createLog" 속성을 true 로 지정하면 이벤트 로그 및 이벤트 소스를 생성할 수 있습니다.

Note

createLog 속성에 의해 이벤트 로그 생성이 성공하더라도 곧바로 이벤트 로그가 생성되지 않습니다. 이벤트 로그가 실제적으로 생성되는 시점은 최초의 로그가 기록되는 시점입니다.

하지만 이벤트 로그 및 이벤트 소스를 생성하기 위해서는 관리자 권한이 필요하므로 일반적인 어플리케이션에서 "createLog" 속성을 true 로 지정하기 어렵습니다. 예를 들어, IIS 에 호스팅 되는 웹 어플리케이션은 w3wp.exe 작업 프로세스 내에서 구동되지만 보안 상 이들 작업 프로세스는 관리자 권한을 갖지 않습니다.

따라서, "createLog" 속성을 사용하여 이벤트 로그/이벤트 소스를 생성하는 것 보다는 PowerShell 혹은 기타 다른 방법을 사용하여 미리 이벤트 로그/이벤트 소스를 생성하는 방법을 권장합니다. 이벤트 로그/이벤트 소스의 생성은 1회만 수행하면 되므로 굳이 보안 위험을 감수하며 어플리케이션에게 관리자 권한을 줄 필요가 없습니다.

다음 PowerShell 명령은 FoxEventLogLogger 가 기본값으로 사용하는 NeoDEEX 이벤트 소스를 등록하는 예제 입니다.

New-EventLog -Log Application -Source NeoDEEX

위에서 예를 든 FoxEventLogLogger 구성 설정을 위해 NeoDEEX5 이벤트 로그와 EventLogSample 이벤트 소스를 등록하는 PowerShell 명령은 다음과 같습니다.

New-EventLog -Log NeoDEEX5 -Source EventLogSample

Information

New-EventLog 명령어에 대한 상세한 내용은 MSDN 문서를 참고하십시요.