http://logging.apache.org/log4net/index.html
위 사이트에서 라이브러리를 제공한다. binary를 다운로드 받으면 각 플랫폼마다 빌드된 lib 가 존재 한다.
현재 프로젝트는 .net Framwork 3.5 기반이므로 .net 3.5 빌드 버젼의 dll을 사용한다.
dll 파일을 참조에 추가하면
위와 같이 References 라이브러리에서 확인할수있다.
이 라이브러리를 사용하기 위해서 log4net.xml 파일이 필요하다. 로그 정보 파일로 log4j와 거의 동일하다.
1: <log4net>
2: <appender name="Console" type="log4net.Appender.ConsoleAppender">
3: <layout type="log4net.Layout.PatternLayout">
4: <!-- Pattern to output the caller's file name and line number -->
5: <conversionPattern value="%d [%t] %-5p %c - %m%n" />
6: </layout>
7: </appender>
8:
9: <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
10: <file value="./log/officetalk.log" />
11: <appendToFile value="true" />
12: <datePattern value="-yyyy-MM-dd" />
13: <rollingStyle value="Date" />
14: <layout type="log4net.Layout.PatternLayout">
15: <conversionPattern value="%d [%t] %-5p %c - %m%n" />
16: </layout>
17: </appender>
18:
19: <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
20: <bufferSize value="1" />
21: <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
22: <connectionString value="data source=10.88.165.224;initial catalog=Marvin;integrated security=false;persist security info=True;User ID=sa;Password=akdlxlql1" />
23: <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
24: <parameter>
25: <parameterName value="@log_date" />
26: <dbType value="DateTime" />
27: <layout type="log4net.Layout.RawTimeStampLayout" />
28: </parameter>
29: <parameter>
30: <parameterName value="@thread" />
31: <dbType value="String" />
32: <size value="255" />
33: <layout type="log4net.Layout.PatternLayout">
34: <conversionPattern value="%thread" />
35: </layout>
36: </parameter>
37: <parameter>
38: <parameterName value="@log_level" />
39: <dbType value="String" />
40: <size value="50" />
41: <layout type="log4net.Layout.PatternLayout">
42: <conversionPattern value="%level" />
43: </layout>
44: </parameter>
45: <parameter>
46: <parameterName value="@logger" />
47: <dbType value="String" />
48: <size value="255" />
49: <layout type="log4net.Layout.PatternLayout">
50: <conversionPattern value="%logger" />
51: </layout>
52: </parameter>
53: <parameter>
54: <parameterName value="@message" />
55: <dbType value="String" />
56: <size value="4000" />
57: <layout type="log4net.Layout.PatternLayout">
58: <conversionPattern value="%message" />
59: </layout>
60: </parameter>
61: <parameter>
62: <parameterName value="@exception" />
63: <dbType value="String" />
64: <size value="2000" />
65: <layout type="log4net.Layout.ExceptionLayout" />
66: </parameter>
67: </appender>
68:
69: <root>
70: <level value="DEBUG" />
71: <appender-ref ref="Console" />
72: <appender-ref ref="RollingFile" />
73: </root>
74:
75: </log4net>
이 설정 파일은 일단 빌드된 exe 파일 존재하는 곳에 위치 해둔다.
해당 설정 정보를 load 하는 코드 이다. Application 진입시점에 코드하면 된다. Application app() 생성자 메소드에서 추가한다.
1: XmlConfigurator.Configure(new System.IO.FileInfo("log4net.xml"));
위 코드에서 경로를 변경해도 되겠지만 일단 상대경로를 사용하기 위해 exe 파일이 존재 하는 경로에 둔다.
Log4Net을 이용해 간단히 작성한 Logger 클래스 이다.
1: class Logger
2: {
3: public static void initLogger()
4: {
5: //로그 설정파일 읽기
6: XmlConfigurator.Configure(new System.IO.FileInfo("log4net.xml"));
7: }
8:
9: protected static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
10: public static void writeInfo(string msg)
11: {
12: if (logger.IsInfoEnabled) logger.Info(msg);
13: }
14:
15: public static void writeDebug(string msg)
16: {
17: if (logger.IsDebugEnabled) logger.Debug(msg);
18: }
19: }
'C#' 카테고리의 다른 글
C# Time (0) | 2013.05.28 |
---|---|
C# 가비지컬렉터와 가비지컬렉션 (0) | 2013.05.14 |
C# 윈폼에서 단축키 설정 (0) | 2013.05.03 |
c# Window Form Application Idle 루프문 사용자설정 (0) | 2013.04.30 |
C# WindowForm Process종료 (0) | 2013.04.30 |