■ Get-EventLog 명령에서 -LogName/-ComputerName 스위치를 사용해 로그오프 성공 이벤트 리스트를 구하는 방법을 보여준다. ▶ 실행 명령
|
Get-EventLog -LogName Security -ComputerName kingdom | Where-Object EventID -eq 4634 | Select-Object -First 10 |
■ Get-EventLog 명령에서 -LogName/-Newest 스위치를 사용해 이벤트 로그를 조회하는 방법을 보여준다. ▶ 실행 명령
|
Get-EventLog -LogName Application -Newest 10 Get-EventLog -LogName Security -Newest 5 |
■ Clear-EventLog 명령을 사용해 이벤트 로그 내역을 지우는 방법을 보여준다. ▶ 실행 명령
|
Clear-EventLog -Logname Application |
■ New-EventLog 명령을 사용해 이벤트 로그와 이벤트 소스를 생성하는 방법을 보여준다. ▶ 실행 명령
|
New-EventLog -Logname Application -Source TestService |
■ 이벤트 로그를 사용하는 방법을 보여준다. ▶ appsettings.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
{ "Logging" : { "LogLevel" : { "Default" : "Information", "Microsoft" : "Warning", "Microsoft.Hosting.Lifetime" : "Information" }, "EventLog" : { "LogLevel" : { "Default" : "Information", "Microsoft" : "Warning", "Microsoft.Hosting.Lifetime" : "Information" } } }, "AllowedHosts" : "*" } |
▶ Controllers/TestController.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; namespace TestProject.Controllers { /// <summary> /// 테스트 컨트롤러 /// </summary> public class TestController : Controller { //////////////////////////////////////////////////////////////////////////////////////////////////// Field ////////////////////////////////////////////////////////////////////////////////////////// Private #region Field /// <summary> /// 로그 기록기 /// </summary> private ILogger<TestController> logger; #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public #region 생성자 - TestController(logger) /// <summary> /// 생성자 /// </summary> /// <param name="logger">로그 기록기</param> public TestController(ILogger<TestController> logger) { this.logger = logger; } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Public #region 인덱스 페이지 처리하기 - Index() /// <summary> /// 인덱스 페이지 처리하기 /// </summary> /// <returns>액션 결과</returns> public IActionResult Index() { this.logger.LogInformation("테스트 로그 입니다."); return View(); } #endregion } } |
TestProject.zip
■ ILogger 인터페이스를 사용해 콘솔에서 로그를 생성하는 방법을 보여준다. ▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
using Microsoft.Extensions.Logging; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main(argumentArray) /// <summary> /// 프로그램 시작하기 /// </summary> /// <param name="argumentArray">인자 배열</param> private static void Main(string[] argumentArray) { using var loggerFactory = LoggerFactory.Create ( builder => { builder .AddFilter("Microsoft" , LogLevel.Warning) .AddFilter("System" , LogLevel.Warning) .AddFilter("LoggingConsoleApp.Program", LogLevel.Debug ) .AddConsole() .AddEventLog(); } ); ILogger logger = loggerFactory.CreateLogger<Program>(); logger.LogInformation("테스트 로그 입니다."); } #endregion } } |
※ Microsoft.Extensions.Hosting 누겟 패키지를 설치한다. TestProject.zip
■ Microsoft.Extensions.Logging.EventLog 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
더 읽기
■ EventLog 클래스를 사용해 이벤트 로그를 기록하는 방법을 보여준다. ▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
using System.Diagnostics; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Field ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region Field /// <summary> /// 이벤트 로그 /// </summary> private static EventLog _eventLog; /// <summary> /// 이벤트 소스명 /// </summary> private static string _eventSourceName = "TestSource"; /// <summary> /// 이벤트 로그명 /// </summary> private static string _eventLogName = "TestLog"; #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { _eventLog = new EventLog(); if(!EventLog.SourceExists(_eventSourceName)) { EventLog.CreateEventSource(_eventSourceName, _eventLogName); } _eventLog.Source = _eventSourceName; _eventLog.Log = _eventLogName; // 이벤트 로그를 작성한다. _eventLog.WriteEntry("서비스를 시작합니다."); // 이벤트 로그 폴더를 삭제한다. //EventLog.Delete(_eventLogName); } #endregion } } |
TestProject.zip