콘솔 애플리케이션 로그 출력 기능을 구현하며 로그 레벨별로 글자색·배경색을 커스텀할 수 있습니다. 디버깅 단계에서 가독성이 매우 좋습니다.
- Visual Studio에서 새 콘솔 애플리케이션 프로젝트 생성
- 프로젝트에
App.config설정 파일 추가 - log4net 적용 (NuGet 설치 / log4net.dll 참조)
App.config내부에 log4net 설정 작성- 코드에서 log4net을 초기화하고 로그 출력
콘솔 로그는 로그 레벨마다 전경색과 배경색을 지정해 로그 종류를 쉽게 구분할 수 있습니다.
App.config 설정
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!-- 컬러 콘솔 출력 어펜더 ColoredConsoleAppender -->
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<!-- ERROR 레벨 색상 설정 -->
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Red, HighIntensity" />
</mapping>
<!-- DEBUG 레벨 색상 설정 -->
<mapping>
<level value="DEBUG" />
<backColor value="Green" />
</mapping>
<!-- INFO 레벨 색상 설정 -->
<mapping>
<level value="Info" />
<backColor value="Yellow" />
</mapping>
<!-- WARN, FATAL은 필요에 따라 매핑 색상을 추가하세요 -->
<!-- 로그 출력 형식 템플릿 -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!-- 루트 로거, 콘솔 출력 활성화 -->
<root>
<level value="All" />
<appender-ref ref="ColoredConsoleAppender" />
</root>
</log4net>
</configuration>Code language: HTML, XML (xml)
형식 자리표 설명
%date:로그 발생 시간[%thread]:스레드 ID%-5level:로그 레벨(5문자 너비 정렬)%logger:로그 출력 클래스 이름%message:로그 본문 내용%newline:자동 줄바꿈
Program.cs
using System;
using log4net;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// log4net 설정 불러와 초기화
log4net.Config.XmlConfigurator.Configure();
// 로거 인스턴스 가져오기, 현재 클래스 타입 전달하여 로그 출처 추적
ILog logger = LogManager.GetLogger(typeof(Program));
// 각 레벨 로그 출력
logger.Info("일반 로그");
logger.Error("오류 로그");
logger.Debug("디버그 메시지");
logger.Fatal("치명적 오류");
logger.Warn("경고 메시지");
Console.ReadKey();
}
}
}Code language: JavaScript (javascript)
실행 결과
로그 레벨에 따라 콘솔에 자동으로 배경색이 적용됩니다:
- INFO:노란색 배경
- DEBUG:녹색 배경
- ERROR / FATAL:밝은 붉은색 배경
- WARN:노란색 배경
출력 예시:
2017-03-21 20:35:31,550 [9] INFO ConsoleApplication1.Program [(null)] - 일반 로그
2017-03-21 20:35:31,592 [9] ERROR ConsoleApplication1.Program [(null)] - 오류 로그
2017-03-21 20:35:31,592 [9] DEBUG ConsoleApplication1.Program [(null)] - 디버그 메시지
2017-03-21 20:35:31,593 [9] FATAL ConsoleApplication1.Program [(null)] - 치명적 오류
2017-03-21 20:35:31,594 [9] WARN ConsoleApplication1.Program [(null)] - 경고 메시지Code language: CSS (css)

콘솔 로그 출력
Previous: 로그가 데이터베이스에 기록됩니다
Next: 별도 설정 파일