본문 바로가기

프로그래밍/ASP.NET

ASP.NET MVC1 에서 iBatis Log 및 log4net 사용.



iBatis.NET : http://www.mybatis.org/dotnet.html
WinTail : http://taesuz.tistory.com/253


남겨진 로그를 실시간으로 보려면 윈도우용 Tail 사용.





 Global.asax.cs
------------------------------------------------------------------------------------------
 protected void Application_Start()
{
   ...........

    log4net.Config.XmlConfigurator.Configure();
}




Web.config
------------------------------------------------------------------------------------------
<!-- log4net -->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>




<!-- 시작 iBatis 로깅 설정-->
<!-- configSections 끝나는 태그 바로 위에 추가 -->
    <sectionGroup name="iBATIS">
      <section name="logging"
               type="IBatisNet.Common.Logging.ConfigurationSectionHandler,             
                     IBatisNet.Common" />
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    <!-- 종료 iBatis 로깅 설정-->


  <!-- <configuration> 내에 추가 -->
  <!-- 시작 iBatis 로깅 설정-->
  <iBATIS>
    <logging>
      <logFactoryAdapter type="IBatisNet.Common.Logging.Impl.Log4NetLoggerFA,
                               IBatisNet.Common.Logging.Log4Net">
        <arg key="configType" value="inline" />
      </logFactoryAdapter>
    </logging>
  </iBATIS>
 
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Logs/log.txt" />
      <param name="MaxSizeRollBackups" value="2" />
      <param name="MaximumFileSize" value="1000KB" />
      <param name="RollingStyle" value="Size" />
      <param name="StaticLogFileName" value="true" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d - [%level] %m%n" />
      </layout>
    </appender>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d - [%level] %m%n" />
      </layout>
    </appender>
    <appender name="DebugAppender" type="log4net.Appender.DebugAppender">
      <immediateFlush value="true" />
      <layout type="log4net.Layout.SimpleLayout" />
    </appender>
   
    <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppender" />
      <appender-ref ref="ConsoleAppender" />
      <appender-ref ref="DebugAppender" />
    </root>
   
    <logger name="IBatisNet.DataMapper.Commands.DefaultPreparedCommand">
      <level value="DEBUG" />
    </logger>
    <logger name="IBatisNet.DataMapper.Configuration.Cache.CacheModel">
      <level value="DEBUG" />
    </logger>
    <logger name="IBatisNet.DataMapper.LazyLoadList">
      <level value="DEBUG" />
    </logger>
    <logger name="IBatisNet.DataMapper.SqlMapSession">
      <level value="DEBUG" />
    </logger>
    <logger name="IBatisNet.Common.Transaction.TransactionScope">
      <level value="DEBUG" />
    </logger>
    <logger name="IBatisNet.DataAccess.DaoSession">
      <level value="DEBUG" />
    </logger>
    <logger name="IBatisNet.DataAccess.Configuration.DaoProxy">
      <level value="DEBUG" />
    </logger>
    <logger name="IBatisNet.DataMapper.Configuration.Statements.PreparedStatementFactory">
      <level value="DEBUG" />
    </logger>
    <logger name="IBatisNet.DataMapper.Commands.IPreparedCommand">
      <level value="DEBUG" />
    </logger>

  </log4net>
  <!-- 종료 iBatis 로깅 설정-->






사용할 클래스에서
------------------------------------------------------------------------------------------
 private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

log.Debug("Hello World!");
log.Info("I'm a simple log4net tutorial.");
log.Warn("... better be careful ...");
log.Error("ruh-roh: an error occurred");
log.Fatal("OMG we're dooooooomed!");