Skip to content

Instantly share code, notes, and snippets.

@wafe
Last active April 22, 2016 03:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wafe/e1f4eeb36a38169939b227e6a1c40e9b to your computer and use it in GitHub Desktop.
Save wafe/e1f4eeb36a38169939b227e6a1c40e9b to your computer and use it in GitHub Desktop.
log4net 로그 XML 읽어서 초기화하는 예시
void InitLog(string log4netConfigXmlPath, string logFilePath)
{
XmlDocument doc = new XmlDocument();
doc.Load(log4netConfigXmlPath);
// log4net 설정 XML 에서 "FileLog" 라는 이름의 appender 를 찾아서 설정으로 받은
// 로그 파일 경로를 변경해준다. log4net 설정 XML을 만들 때 주의.
XmlAttribute filePathAttr = (XmlAttribute)doc.SelectSingleNode("/log4net/appender[@name='FileLog']/file/@value");
filePathAttr.Value = logFilePath;
// log4net 로그 기록 설정.
log4net.Config.XmlConfigurator.Configure(doc.DocumentElement);
// LOGGER 는 클래스 멤버인데, log4net.ILog 타입이다.
if (LOGGER == null)
{
LOGGER = LogManager.GetLogger(this.GetType());
}
LOGGER.Debug("Logger Initialized");
}
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="FileLog" type="log4net.Appender.FileAppender">
<file value="G:\temp\eStageService\estageserver.log" />
<encoding value="utf-8" />
<appendToFile value="true" />
<!--
멀티 프로세스가 한 로그 파일에 기록하므로 MiniamlLock 사용
-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date| %t| %-5level| %logger| %message| %exception||%n" />
</layout>
</appender>
<!--
콘솔로 로그 출력하는 용도. 아래의 appender-ref ref="Console" 을 주석해제 하면 됨.
운영용으로는 콘솔 출력을 사용하지 않음.
-->
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<!--<appender-ref ref="Console" />-->
<appender-ref ref="FileLog" />
</root>
</log4net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment