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 --><log4net xsi:nonamespaceschemalocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <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()); } }} |
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를 선언만 해주시고 여러 메소드에서 로그를 찍으시면 됩니다.
728x90
반응형
'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 |