dll 참조를 한다. (설치경로 참조)
- Common.Logging.dll 1.2.0.0
- Common.Logging.Log4Net.dll 1.2.0.2
- log4net.dll 1.2.10.0
logging adaper에는 4가지의 로그를 설정할 수 있다.
- NoOpLoggerFactoryAdapter : 설정없이 기본으로 사용된다.
- ConsoleOutLoggerFactoryAdapter : console창에 로그가 나타난다.
- TraceLoggerFactoryAdapter : System.Diagnostics.Trace for logging output 과 동일하다.
- Log4NetLoggerFactoryAdapter :
app.config 파일에서 아래와 같이 설정이 가능하다.
▲ configSection 설정
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
...
</configuration>
▲ Common.Logging.Simple.TraceLoggerFactoryAdapter, Common.Logging 설정방식
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections ...>
...
<common><logging>
<factoryAdapter type="Common.Logging.Simple.TraceLoggerFactoryAdapter, Common.Logging">
<arg key="level" value="DEBUG" />
<arg key="showLogName" value="true" />
<arg key="showDataTime" value="true" />
<arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:fff" />
</factoryAdapter>
</logging>
</common>
...
</configuration>
▲ Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging 설정방식
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections ...>
...
<common><logging>
<factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
<arg key="level" value="DEBUG" />
<arg key="showLogName" value="true" />
<arg key="showDataTime" value="true" />
<arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:fff" />
</factoryAdapter>
</logging>
</common>
...
</configuration>
▲ Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net 설정방식
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections ...>
...
<common>
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">
<!-- choices are INLINE, FILE, FILE-WATCH, EXTERNAL-->
<!-- otherwise BasicConfigurer.Configure is used -->
<!-- log4net configuration file is specified with key configFile-->
<arg key="configType" value="INLINE" />
</factoryAdapter>
</logging>
</common>
...
<log4net debug="false">
<root>
<!-- TRACE, DEBUG, ERROR, FATAL, INFO, WARN -->
<level value="ERROR"/>
<appender-ref ref="RollingLogFileAppender_Piggy"/>
</root>
<!-- TRACE, DEBUG, ERROR, FATAL, INFO, WARN -->
<level value="ERROR"/>
<appender-ref ref="RollingLogFileAppender_Piggy"/>
</root>
<logger name="HelloApp.Program">
<level value="ERROR" />
</logger>
<logger name="Spring">
<level value="INFO" />
</logger>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="Logs\Application.log.txt"/>
<param name="datePattern" value="MM-dd HH:mm"/>
<param name="AppendToFile" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/> </layout>
</appender>
<appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\Log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="RollingStyle" value="Size"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="RollingLogFileAppender_Piggy"
type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\ExceptionLog"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="RollingStyle" value="Date"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyyMMdd".log""/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
</log4net>
로그를 찍는방법에는 종류는 4가지가 있다.
- INLINE
- FILE
- FILE-WATCH
- EXTERNAL
▲ c#에서 사용
using Common.Logging;
.......
ILog Log = LogManager.GetLogger(네임스페이스.클래스명);
Log.Debug("Debug");
Log.Fatal("Fatal");
Log.Error("Error");
Log.Info("Info");
Log.Warn("Warn");
.......
ILog Log = LogManager.GetLogger(네임스페이스.클래스명);
Log.Debug("Debug");
Log.Fatal("Fatal");
Log.Error("Error");
Log.Info("Info");
Log.Warn("Warn");
참고
Posted by
CoolDragon