AppDomain.CurrentDomain의

기본 폴더 정의값 가져오기



var applicationBasePath = AppDomain.CurrentDomain.BaseDirectory;
applicationBasePath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

[코드1] 실행 되는 폴더의 기본 폴더를 가져온다.


 위 코드는 프로그램이 실행되는 환경의 폴더 위치를 가져오는 방법이다. 이 방법을 통해 디버깅이나 다른 용도로 로그를 사용할 때 쉽게 찾을 수 있도록 할 수 있을 것이다. 사용 방법을 "코드2"와 같이 할 수 있을 것이다.



public static object logLock = new object();
 
/// <summary>
/// 로그 저장
/// </summary>
/// <param name="str"></param>
/// <remarks>
/// 로그를 저장하고 쓰레드 안정성을 가지고 있다.
/// </remarks>
public void WriteLog(string str)
{
    var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory"log.txt");
    lock (logLock)
    {
        var sw = File.AppendText(path);
        sw.WriteLine(str);
        sw.Flush();
        sw.Close();
        sw = null;
    }
}

[코드2] 로그 저장 메소드



 이와 같이 사용하면 실행 폴더의 가장 상위에 "log.txt" 파일이 생성되며 로그가 저장이 될 것이다.


Log4Net 간단 사용법


참조 URL
  1. http://blog.daum.net/joshuajh/5671007




1. 설정 초기화


Assembly.cs 파일을 이용 한 초기화 작업 수행


[코드1] Assembly.cs


 로그를 사용하려는 클래스에서 초기화 작업 수행


[코드2] 해당 클래스에서 초기화



2. 로그 설정 파일


 기본적인 설정 파일을 log4net.xml 파일이지만 웹 서버에서 호스팅을 할 때 URL을 직접 치고 들어오면 사용자가 설정 파일을 받을 수 있기 대문에 제외되어 있는 config 파일 형식으로 수정하였다.


[코드3] Log4Net 설정 파일 - log4net.config


 '코드3'에서의 설정 파일로 로그에 저장할 수 있는 형식과 저장 방법을 설정할 수 있다. 위 설정 파일을 root 노드에서 'RollingFile'을 사용하도록 설정하였으며 'appender name="RollingFile" '을 찾아가 보면 Log4Net에서 제공해주는 'log4net.Appender.RollingFileAppender' 형식으로 저장하도록 기본 제공하고 있다.



3. 로그 사용


 해당 클래스에서의 객체 생성 하기


[코드4] 해당 클래스에서 객체 인스턴스 화 작업



 위 '코드4'에서와 같이 로그를 사용할 해당 클래스에서 초기화를 수행하면 로그를 사용할 수 있게 된다. '코드5'를 통해 이제 로그를 저장하여 보자.


[코드5] Log4Net으로 로그 저장


 '코드5'와 같이 필요한 곳에서 필요한 로그 저장 메소드를 추가하면 될 것이다. 그리고 추가로 '코드4'에서 주석 처리된 '로그네임'을 사용하여 초기화를 하면 설정파일에 '로그네임'의 노드를 찾아서 추가적인 로그 저장 방법을 추가할 수 있다.





+ Recent posts