게임을 운여하다 보면 사용자의 로그를 기록해야 하는 경우가 있다.
결제라든가, 상품을 언제 얻었는 지 등등
이때 DB로 로그를 남지는 방법도 있지만, 텍스트 파일로 저장하게끔 할 수도 있다.
이때 log4net이라는 c#용 로그 라이브러리가 있어서 소개하려한다.
log4net은 비동기 로그 라이브러리로, 시간별, 날짜별 로그를 저장할 수 있게 도와준다.
1. log4net.dll 설치
log4net을 사용하기 위해서, dll을 설치해야 하는데, 최근에는 Nuget Manager에 올라와 있다. 구글링 안해도 되서 편하니 비주얼 스튜디오 사용하길 권한다.
2. LogConfig.xml 설정
프로젝트에 LogConfig.xml을 생성하고 아래와 같이 적는다.
<?xml version="1.0" encoding="UTF-8" ?>
<!-- This section contains the log4net configuration settings -->
<log4net>
<!--// appender 이름과 type을 설정한다. type은 file에 남길 것이므로 예와 같이 설정하였습니다.-->
<appender name="exlog" type="log4net.Appender.RollingFileAppender">
<!--//log를 저장 할 위치입니다.-->
<file value="log/" />
<!--//file을 날짜별로 변경하고 file이름은 2014-07-20_exlog.log로 생성되게 설정하였습니다.-->
<datePattern value="yyyy-MM-dd'_exlog.log'" />
<!--//file을 날짜 별로 변경 시 false로 설정하였습니다.-->
<staticLogFileName value="false" />
<!--//file에 log를 append 시키므로 true.-->
<appendToFile value="true" />
<!--//file을 설정에 따라 file 변경하며 저장하도록 설정-->
<rollingStyle value="Composite" />
<!--//file 용량에 따라 변경이 최대 생성되는 file 갯수 설정-->
<maxSizeRollBackups value="100" />
<!--//file 용량이 설정 값보다 크면 file변경하며 저장-->
<maximumFileSize value="100MB" />
<!--//log에 남는 patten 설정 (ex -> 16:00:40,004 Log Message)-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value = "[%p] %d{yyyy/MM/dd HH:mm:ss} %C %M %L %m %n"/>
</layout>
</appender>
<!--//logger name -> 이 프로그램에서 logger 를 찾을 때 사용합니다.-->
<logger name = "Logger">
<!--//logger level-->
<level value="Info" />
<!--//위에 설정한 appender name입니다.-->
<appender-ref ref="exlog" />
</logger>
</log4net>
3. 초기화 및 사용
log4net을 사용하기 위해서 초기화 작업을 해줘야 한다. 아래와 같이 초기화 해주자.
public static ILog iLog;
override protected void init()
{
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("../../LogConfig.xml"));
iLog = log4net.LogManager.GetLogger("Logger");
}
사용 방법도 매우 단순하다.
iLog.Info(message);
iLog.Error(message);
4. 사용 결과 예..
'게임을 만들자 > 게임 서버(C#)' 카테고리의 다른 글
파이썬으로 구글 스프레드시트 다운받고, Json으로 변경하기 (0) | 2019.12.28 |
---|---|
c# 실시간 게임 서버 만들기 3 - 서버 (1) | 2019.12.22 |
c# 실시간 게임 서버 만들기 2 - 클라이언트 (2) | 2019.12.19 |
c# 실시간 게임 서버 만들기 1 - 패킷 (1) | 2019.12.17 |
c# iBatis 세팅 및 예시 (0) | 2019.12.11 |