상세 컨텐츠

본문 제목

Log4Net

C#

by 탑~! 2013. 1. 3. 13:39

본문

Java에서는 쓰는 로깅도구로 log4j를 많이들 쓰시는데 c#에두 log4net이라는 이름으로 나와 있군요.


1. http://logging.apache.org/log4net/index.html
   공식 사이트에서 다운 로드 받습니다.

2. 압축풀고 프로젝트에 log4net.dll을 참조시킵니다.

3. log4net.xml 이란 파일을 만들고 설정을 해야합니다.



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
<!--?xml version="1.0" encoding="utf-8"?-->
<!-- This section contains the log4net configuration settings -->
   
  <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">
    </conversionpattern></layout>
  </appender>
  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="./log/">
    <param name="RollingStyle" value="Date">
    <param name="DatePattern" value="yyyy-MM-dd.'log'">
    <param name="AppendToFile" value="true">
    <param name="StaticLogFileName" value="false">   
    <encoding value="utf-8">
    <layout type="log4net.Layout.PatternLayout">
      <conversionpattern value="%d [%t] %-5p %c - %m%n">
    </conversionpattern></layout>
  </encoding></appender>
  <root>
    <level value="DEBUG">
    <appender-ref ref="Console">
    <appender-ref ref="RollingFile">
  </appender-ref></appender-ref></level></root>
</log4net>

날짜별로 로그가 쌓이도록 설정된 파일입니다. 하루에 한개의 파일 씩 생성됩니다. 물론 사이즈별로도 설정할 수가 있습니다만.. 자세한것은 아파치 문서를 참조바랍니다.

4. 실제 로그를 찍어 봐야겠지요?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using log4net;
using log4net.Config;
 
namespace Test {
    static class Program {
        /// <summary>
        /// 해당 응용 프로그램의 주 진입점입니다.
        /// </summary>
        [STAThread]
        static void Main() {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
 
            //로그 설정파일 읽기
            XmlConfigurator.Configure(new System.IO.FileInfo("log4net.xml"));
            Application.Run(new MainForm());
        }
    }
}
위 코드처럼 최초 실행시 xml 설정파일을 한번 읽어줍니다. using도 빼먹지 마시구요
1
2
3
4
5
6
7
public class A{
      protected static readonly ILog logger =
                 LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
      public A(){
            if (logger.IsDebugEnabled) logger.Debug("Log 찍기");
      }
}

이 후 클래스에서는 멤버변수로 logger를 선언만 해주시고 여러 메소드에서 로그를 찍으시면 됩니다.

'C#' 카테고리의 다른 글

.Net Zip Library  (0) 2013.01.17
CSV파일 읽어 처리하는 방법  (0) 2013.01.17
Digital display control in C#.Net using GDI+  (0) 2012.12.27
C#에서 문자열 앞에 '@' 을 붙이는 것  (0) 2012.09.13
특정 사이트의 HTML문서 긁어오기  (0) 2012.08.07

관련글 더보기