[C#] log4net 사용법

2026. 6. 16. 09:58·Programming/C#.NET

제가 C#으로 프로그램을 만들때 주로 사용하는 log 라이브러리인 log4net 의 사용법을 소개합니다. log4net은 유명한 자바 log 라이브러리인 log4j의 .NET 버전이죠 사용하기도 편하고 기능이 강력해서 잘 사용하고 있습니다.
​
​무인으로 동작하는 프로그램을 개발하거나 사용자에게 에러메세지를 숨겨야 하는경우 log에 남겨 놓고 문제점을 확인할때 필수이죠.
​
​사용법

우선 https://logging.apache.org/log4net/
이곳에가서 다운로드 받아서 사용해도 되고 Nuget을 통해 설치한 후 사용할 수 있습니다.

 

기본설정

Program.cs 에 추가할 내용

//using 추가
using log4net.Config;
//로그 설정파일 읽기
XmlConfigurator.Configure(new System.IO.FileInfo("log4net.xml"));

log4net.xml 설정내용

저는 주로 파일로 log를 만들고 실행폴더에 /log 폴더에
yyyy-MM-dd-ERROR.log 파일명으로 날짜별로 log를 만듭니다.

<log4net>
    <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">
        <file value="./log/">
            <appendtofile value="true">
                <datepattern value="yyyy-MM-dd_ERROR.LOG">
                <rollingstyle value="Date">
                        <staticlogfilename value="false">
                            <layout type="log4net.Layout.PatternLayout">
                                <conversionpattern value="%d [%t] %-5p %c - %m%n">
                                </conversionpattern>
                            </layout> 
                        </staticlogfilename>
                    </rollingstyle>
                </datepattern>
            </appendtofile> 
        </file> 
    </appender>
    <root>
        <level value="DEBUG">
            <appender-ref ref="Console">
                <appender-ref ref="RollingFile">
                </appender-ref>
            </appender-ref>
        </level>
    </root>
</log4net>

 

사용할 Form 에서 소스코드에 다음을 선언한 후

protected static readonly ILog logger =
                 LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);			 

  try
	{
	
	}
	catch (Exception ex)
	{
		// ERROR
		logger.Error("에러위치 ERROR: " + ex.Message.ToString().Trim());
        // Debug
		logger.Debug("디버그 값 표시");
		// Info
		logger.Info("정보 표시");
	}

'Programming > C#.NET' 카테고리의 다른 글

[C#] WPF 기초 강좌 #1  (0) 2026.07.01
[C#] DES 암호화/복호화  (0) 2026.06.30
[C#] 프로그래밍 팁  (0) 2026.06.12
[C#] ini 파일 다루기  (0) 2026.06.10
[C#] 엑셀 시트명 읽어 오기 / Excel 파일내용 읽어오기  (0) 2026.06.04
'Programming/C#.NET' 카테고리의 다른 글
  • [C#] WPF 기초 강좌 #1
  • [C#] DES 암호화/복호화
  • [C#] 프로그래밍 팁
  • [C#] ini 파일 다루기
레이조(RayCho)
레이조(RayCho)
개발자 레이조(RayCho)의 블로그입니다. 똑똑하게 배우고 기록하는 공간
  • 레이조(RayCho)
    레이(Ray)의 개발이야기
    레이조(RayCho)
  • 전체
    오늘
    어제
    • 분류 전체보기 (73) N
      • Programming (73) N
        • Python (5)
        • Flutter (4)
        • Delphi (25)
        • Lazarus (1)
        • C#.NET (13) N
        • ASP.NET (5)
        • Database (6)
        • Game Dev (5)
        • Web (6)
        • ETC (3)
  • 블로그 메뉴

    • 홈
    • Introduce
    • 태그
    • 방명록
  • 링크

    • Naver Blog
    • Diary Blog
  • 공지사항

  • 인기 글

  • 태그

    Web
    C++
    델파이
    Flutter
    웹프로그래밍
    ASP.NET
    objectpascal
    csharp
    기초
    mssql
    VCL
    iis
    C#
    POST
    소스코드
    개발환경
    프로그래밍
    delphi
    Python
    PSP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
레이조(RayCho)
[C#] log4net 사용법
상단으로

티스토리툴바