출처입니다 : [C#]Log4Net 사용법 :: 시나공공 (tistory.com)
1. 프로젝트에 Log4netConfig.xml 라는 명칭으로 , Log4net의 설정 파일을 1차로 작성 하였습니다.
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<param name="File" value="log\log.txt" />
<param name="DatePattern" value="-yyyy-MM-dd"/>
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p - %m%n" />
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="RollingFile"/>
</root>
</log4net>
2. Log를 Write 하는 static 클래스를 작성 하였습니다.... 제가 작성 한 예제 처럼 Class를 static으로 하지 말고 ,
log4net 인스턴스를 SingleTone 형태로 생성하는 것이 좋다고 생각합니다....
using System;
using System.Collections.Generic;
using System.Text;
//
using log4net;
using log4net.Config;
using System.Reflection;
using System.IO;
namespace TestProject
{
public static class WriteLog
{
private static ILog _logger = null;
//public ILog logger { get { return _logger; } }
static WriteLog()
{
InitLogger();
}
private static void InitLogger()
{
string logWritePath = string.Format(@"{0}\{1}",Path.GetDirectoryName(Assembly.GetEntryAssembly().Location),"log");
string log4ConfigPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + @"\" + "Log4netConfig.xml";
if (!Directory.Exists(logWritePath))
Directory.CreateDirectory(logWritePath);
XmlConfigurator.Configure(new FileInfo(log4ConfigPath));
_logger = log4net.LogManager.GetLogger("RollingFile");
}
public static void Debug(string log)
{
_logger.Debug(log);
}
public static void Info(string log)
{
_logger.Info(log);
}
public static void Error(string log)
{
_logger.Error(log);
}
public static void Error(string log, Exception exception)
{
_logger.Error(log, exception);
}
}
}
3. Log4netConfig.xml -> DatePattern 으로 설정시에 일별로 파일 분리 저장 되는 것을 확인 하였습니다.
'C#' 카테고리의 다른 글
[C#] HttpWebRequest/HttpWebResponse Memory leak 현상 발생 관련 사항 (0) | 2022.08.12 |
---|---|
[C#] WebView2 Control 이용 PDF 파일 오픈 후 Key , mouse 입력 인쇄 시도 (0) | 2022.05.26 |
[RTSP] TCPClient를 이용하여 OPTIONS 요청 결과 받기 (0) | 2022.03.03 |
VirtualBox 호스트와 멀티캐스트(Multicast) 패킷 송/수신 테스트 진행 (0) | 2022.03.02 |
INotifyPropertyChanged 인터페이스를 이용하여 프로퍼티가 변경될때 이벤트를 발생시키는 간단한 예제. (0) | 2013.02.05 |