문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| product:povice:framework:log [2022-11-15 15:20] – 제거됨 - 바깥 편집 (Unknown date) 127.0.0.1 | product:povice:framework:log [2024-02-26 09:16] (현재) – [사용자 정의] suri | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | ====== 로그(Log) 사용 ====== | ||
| + | |||
| + | 로그는 소프트웨어가 실행 중에 발생하는 이벤트나 예외 혹은 메시지를 기록하는 것을 말합니다. 로그 기능은 한가지 방법 혹은 둘 이상의 방법으로 조합할 수 있으며 사용자 정의도 가능합니다. 사용자 정의를 사용하려면 '' | ||
| + | ===== 환경설정 ===== | ||
| + | |||
| + | ==== DefaultDateTimeFormat ==== | ||
| + | |||
| + | 로그에서 기본으로 사용하는 날짜 형식입니다. 기본값은 '' | ||
| + | <code csharp> | ||
| + | Config.DefaultDateTimeFormat에서 정의된 기본값은 “yyyy-MM-dd HH: | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | ==== DefaultDirectoryPath ==== | ||
| + | |||
| + | 로그 디렉토리 경로를 가져옵니다. 기본값은 '' | ||
| + | <code csharp> | ||
| + | Config.ProgramDirectoryPath에서 정의된 기본값은 어셈블리가 로드된 위치입니다. | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | ==== DefaultTimeSpanFormat ==== | ||
| + | |||
| + | 로그에서 기본으로 사용하는 시간 간격 형식입니다. 기본값은 '' | ||
| + | <code csharp> | ||
| + | Config.DefaultTimeSpanFormat에서 정의된 기본값은 “mm\\: | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Console 로그 ===== | ||
| + | |||
| + | 콘솔 출력으로 로그를 사용합니다. Log.Console 전역 멤버에 정의된 콘솔 로그 기능을 호출하여 로그를 남깁니다. 기본적으로 ConsoleLog 클래스를 사용합니다. | ||
| + | |||
| + | ===== File 로그 ===== | ||
| + | |||
| + | 파일에 쓰는 로그를 사용합니다. 기본 디렉토리 위치는 '' | ||
| + | ===== 사용자 정의 ===== | ||
| + | |||
| + | 어떤 종류의 로그라도 '' | ||
| + | |||
| + | * Log.Console : 콘솔 로그입니다. | ||
| + | * Log.Database : 데이터베이스 로그입니다. | ||
| + | * Log.File : 파일 로그입니다. | ||
| + | * Log.System : 시스템 로그입니다. | ||
| + | |||
| + | 데이터베이스 로그를 남기는 방법을 예로 들면 아래와 같습니다. | ||
| + | |||
| + | <code csharp> | ||
| + | using Povice; | ||
| + | using System.Runtime.CompilerServices; | ||
| + | |||
| + | /// < | ||
| + | /// 데이터베이스에 로그를 남기는 클래스입니다. | ||
| + | /// </ | ||
| + | public class DatabaseLog : ILog | ||
| + | { | ||
| + | /// < | ||
| + | /// 로그 내용을 남깁니다. | ||
| + | /// </ | ||
| + | /// <param name=" | ||
| + | public void Write(LogEventArgs e) | ||
| + | { | ||
| + | // 데이터베이스에 로그를 남기는 쿼리를 구현합니다. | ||
| + | } | ||
| + | |||
| + | public void Write(string text, LogLevel level = LogLevel.Info, | ||
| + | { | ||
| + | // 데이터베이스에 로그를 남기는 쿼리를 구현합니다. | ||
| + | } | ||
| + | } | ||
| + | |||
| + | // DatabaseLog 클래스를 전역 멤버인 Log.Database에 설정합니다. | ||
| + | Log.Database = new DatabaseLog(); | ||
| + | |||
| + | // 콘솔과 데이터베이스에 모두 로그를 남기도록 설정합니다. | ||
| + | Log.DefaultFlags = LogFlags.Console | LogFlags.Database; | ||
| + | |||
| + | // 로그 클래스를 생성합니다. 로그 이름을 전달하여 종류를 파악할 수 있도록 합니다. | ||
| + | var log = new Log(" | ||
| + | |||
| + | // 기본적으로 전역으로 설정한 Log.DefaultFlags를 사용합니다. | ||
| + | // 그러나, 다음과 같이 이 로그 개체에서만 다르게 동작하도록 변경할 수 있습니다. | ||
| + | log.Flags = LogFlags.File | LogFlags.Database; | ||
| + | |||
| + | // 실제 로그를 남기는 호출 코드입니다. | ||
| + | log.Write(" | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | System 로그는 윈도우 이벤트 로그와 같이 시스템에서 사용하는 로그를 대상으로 설정합니다. Console, File, Database, System 등 모두 별도로 설정이 가능하고 동시에 호출이 가능하므로 다양하게 활용할 수 있습니다. | ||
| + | |||
| + | |||
| + | ===== 로그의 예외(Exception) ===== | ||
| + | |||
| + | 로그를 남기는 코드에서 예외가 발생하면 '' | ||
| + | |||