달력

52024  이전 다음

  • 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

닷넷이 기본적으로 제공하는 이벤트 로그는 사용하기는 간단하지만

기능이 적다는 단점이 있습니다.

 

자바쪽에서는 Log4J라는 강력한 로깅 서비스가 있죠..

이것을 닷넷 플랫폼에 맞게 포팅한 Log4Net이라는 게 있습니다.

사용법은 거의 같습니다.

 

지난 여수 프로젝트에서 사용해 봤는데요..

그때는 별로 잘 알지도 못하고 써봤습니다.. -_-a

여튼 알아두시면 도움이 될 겁니다..

 

Devpia에서 가져오 글입니다.

오광신(raytrust) 님이 작성하셨네요..

 

--------------------------------------------------------

 

안녕하세요.

C#으로 프로그래밍 하던 중에 로그를 어떻게 남길까 고민하다가, 아파치 로깅 서비스 프로젝트 페이지에 가보니 이미 C#으로도 프로젝트가 있네요.

프로젝트 이름은 log4net 이고, 홈 페이지는

http://logging.apache.org/log4net/

입니다...

역시나 훌륭하군요..^^/

쉽게 로깅 서비스를 구현하실 수 있고, 다음과 같은 Appender를 지원하네요.

ADONetAppender
MS SQL Server
MS Access
Oracle9i
ASPNetTraceAppender
BufferingForwardingAppender
ColoredConsoleAppender
ConsoleAppender
EventLogAppender
FileAppender
ForwardingAppender
MemoryAppender
NetSendAppender
OutputDebugStringAppender
RemotingAppender
RollingFileAppender
SmtpAppender
SmtpPickupDirAppender
TraceAppender
UdpAppender

Appender는 쉽게 말해서 로그를 남기고 싶은 target을 지정하는 것입니다.

이 Appender의 설정은 configuration 파일로 설정이 가능하기 때문에, 소스를 변경하지 않고도 Appender에 대한 설정을 변경할 수 있습니다.

사용하시는 방법을 간단하게 설명해 드리면...

우선 홈페이지에서 최신 버전을 다운로드합니다.

현재는 최신 버전이 log4net-1.2.0-beta8 이군요.

다운 받은 zip파일의 압축을 풀어서 bin\net\1.1\release 디렉토리에 있는 log4net.dll 파일을 프로젝트에 추가합니다.

간단한 예제 소스는 다음과 같습니다.

using log4net;
using log4net.Config;

namespace LoggingService {
    public class SampleExample {
        private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        public SampleExample() {
            DOMConfigurator.Configure(new FileInfo("Configuration.log4net"));

            SampleExample.log.Info("This is a SampleExample class's constructor.");
            SampleExample.log.Debug("You can log DEBUG message.");
            SampleExample.log.Error("When you meet ERROR, log ERROR message.");
        }
    }
}


이제 설정파일만 만들어주면 됩니다.^^

위의 소스에서

DOMConfigurator.Configure(new FileInfo("Configuration.log4net"));

부분에서와 같은 이름으로 파일을 만들고 다음과 같이 작성합니다.

<?xml version="1.0" encoding="utf-8" ?>
<!-- This section contains the log4net configuration settings -->
<log4net>
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
            <!-- Pattern to output the caller's file name and line number -->
            <conversionPattern value="%d [%t] %-5p %c - %m%n" />
        </layout>
    </appender>
    
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
        <file value="SampleExample.log" />
        <appendToFile value="true" />
        <datePattern value="-yyyy-MM-dd" />
        <rollingStyle value="Date" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%d [%t] %-5p %c - %m%n" />
        </layout>
    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="Console" />
        <appender-ref ref="RollingFile" />
    </root>
</log4net>


이렇게 설정을 하면, 소스에서 남긴 로그가 콘솔과 SampleExample.log 파일에 저장이 됩니다.

또한 파일에 남기는 로그는 RollingFile로서 매일 새로운 로그 파일을 생성합니다.

즉, 같은 날 남기는 로그는 SampleExample.log 라는 파일에 로그를 남기지만, 다음날 프로그램이 실행되어서 로그를 남기게 될때...

기존의 데이터는 SampleExample.log-2004-08-03 이라는 파일로 남겨두고, 다시 처음부터 SampleExample.log라는 파일로 로그를 남깁니다.

로그를 남길 때 유용할 것 같아서, 간단하게 소개를 했습니다.

더 자세한 것들은 홈페이지에서 참고하시기 바랍니다.

급하게 쓰니라고 잘못된 부분이나 부족한 부분이 있을수도 있습니다. 발견하시면 언제든지 리플달아 주시기 바랍니다.

질문도 리플로 달아주시면 제가 아는 한도(^^)에도 답변해 드리도록 하겠습니다.

'.NET' 카테고리의 다른 글

[C#] 트랜잭션 사용  (0) 2005.06.15
[링크] 닷넷용 웹메뉴....  (0) 2005.06.10
.NET 2003 서버에 SQL 서버 설치시 문제발생!!  (0) 2005.05.25
[링크] 조타..  (0) 2005.05.25
[펌] MSDN 라이브러리  (0) 2005.05.25
Posted by tornado
|