로깅 가이드
- 개요
- 이 문서는 Tqlogger 사용법과 상황별로 어떤 레벨에 로깅을 사용해야 하는지 가이드한 문서 입니다.
Log4net 설정 방법
-
로그를 남기기 위해 데이터베이스 연결이 필요 합니다.
-
log4net.xml의 위치는 provider 내부에 위치해 있습니다.
-
Tqlogger를 사용하기전에 각 프로젝트 시작전에 아래 예제와 같이 Log4net 설정을 해주어야 합니다.
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(Server.MapPath("~/App_Config/Provider/log4net.xml")));
로그 저장 DB
-
Tqlogger로 남긴 로그는 BizLog 테이블에 저장됩니다.
- 로그가 저장되는 BizLog 테이블은 두가지로 나눌 수 있습니다.
- 향별 DB에 저장되는 TqoonLog.dbo.BizLog
- 글로벌 DB에 저장되는 TqoonLog.dbo.BizLog
- 역활
- 향별 DB에 저장되는 TqoonLog.dbo.BizLog
- 프로젝트에서 발생하는 오류, 디버그 등 로그 저장
- 글로벌 DB에 저장되는 TqoonLog.dbo.BizLog
- 224 작업 서버에서 동작 중인 작업 워커에서 발생하는 오류, 디버깅 등 로그 저장
- 향별 DB에 저장되는 TqoonLog.dbo.BizLog
TqLogger 사용법
-
TqLogger는 아래와 같이 TqLogger.{LEVEL} 로 사용할 수 있습니다.
var orderItem = AdprintOrderDao.FindById(pgCommonResultItem.OrderId); if (orderItem.IsPaid()) { TqLogger.Debug("이미 지불된 주문입니다.", "AlibabaNotifyController"); return true; }
-
매개변수
-
message logKey exception request callerMemberName callerFilePath callerLineNumber 로깅시 남길 메세지 로깅 위치 발생한 입셉션 받은 Request 호출한 곳의 이름 발생한 파일 위치 발생한 줄 위치
-
LEVEL에 종류와 사용 예시
-
Debug
-
Debug는 말 그대로 디버깅을 위한 용도로 특정 상황 발생시 디버그 로그를 남겨 놓기위해 사용 합니다.
-
현재 Error와 Debug가 용도가 구분되지 못하고 혼용되어 사용되고 있음
-
Debug는 Error와 구분하여 디버그 로그를 남길때만 사용 요망
public static void Debug(object message, string logKey = "", Exception exception = null, HttpRequestBase request = null, [CallerMemberName] string callerMemberName = "", [CallerFilePath] string callerFilePath = "", [CallerLineNumber] int callerLineNumber = 0) { BizLog.Debug(message, logKey, exception, request, callerMemberName, callerFilePath, callerLineNumber); }
-
-
Error
-
에러 발생시 로그를 남기기 위한 레벨 입니다.
-
마찬 가지로 Debug와 개념을 혼동하지 않고 사용 요망
public static void Error(object message, string logKey = "", Exception exception = null, HttpRequestBase request = null, [CallerMemberName] string callerMemberName = "", [CallerFilePath] string callerFilePath = "", [CallerLineNumber] int callerLineNumber = 0) { BizLog.Error(message, logKey, exception, request, callerMemberName, callerFilePath, callerLineNumber); }
-
-
Fatal
-
단순 에러가 아닌 발생하면 안되는 크리티컬한 에러가 발생할 경우 사용할 레벨입니다.
public static void Fatal(object message, string logKey = "", Exception exception = null, HttpRequestBase request = null, [CallerMemberName] string callerMemberName = "", [CallerFilePath] string callerFilePath = "", [CallerLineNumber] int callerLineNumber = 0) { BizLog.Fatal(message, logKey, exception, request, callerMemberName, callerFilePath, callerLineNumber); }
-
-
Info
-
메소드로 넘어오는 파라미터 값 및 필요한 정보 개발환경에서 확인하기 어려운 내용을 로그로 남길때 사용 합니다.
public static void Info(object message, string logKey = "", Exception exception = null, HttpRequestBase request = null, [CallerMemberName] string callerMemberName = "", [CallerFilePath] string callerFilePath = "", [CallerLineNumber] int callerLineNumber = 0) { BizLog.Info(message, logKey, exception, request, callerMemberName, callerFilePath, callerLineNumber); }
-
-
Warn
-
오류까진 아니더라도 발생시 주의가 필요한 경우 해당 로그를 남깁니다.
public static void Warn(object message, string logKey = "", Exception exception = null, HttpRequestBase request = null, [CallerMemberName] string callerMemberName = "", [CallerFilePath] string callerFilePath = "", [CallerLineNumber] int callerLineNumber = 0) { BizLog.Warn(message, logKey, exception, request, callerMemberName, callerFilePath, callerLineNumber); }
-