Log 4 Net構成


最初のステップは、Log 4 Netをダウンロードします.dll
http://download.csdn.net/detail/cpcpc/4011877
第2部では、プロファイルappを追加する.config,追加位置はコンソールアプリケーション,Windowsアプリケーション,Windowsサービス,Asp.Net Webサイトの下、Silverlightの下
<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>


  <log4net>

    <!--1        -->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <!--        -->
      <file type="log4net.Util.PatternString" value="%  \%date{yyyMMdd}\log.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <!--    -->
        <conversionPattern value="    :%date   ID:[%thread]     :%-5level    :%logger -     :%message%newline" />
      </layout>
      <!--<filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="WARN" />
        <param name="LevelError" value="ERROR" />
        <param name="LevelFatal" value="FATAL" />
        <param name="LevelInfo" value="INFO" />
      </filter>-->
    </appender>

    <!--2            -->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="    :%date   ID:[%thread]     :%-5level    :%logger -     :%message%newline" />
      </layout>
      <!--<filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="FATAL" />
      </filter>-->
    </appender>

    <!--3     windows   -->
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="    :%date   ID:[%thread]     :%-5level    :%logger -     :%message%newline" />
      </layout>
    </appender>

    <!--4         ,       Access    ,    C  log4net.mdb-->
    <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
      <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\log4net.mdb" />
      <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
      <!--      -->
      <parameter>
        <parameterName value="@logDate" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@thread" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%thread" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logLevel" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%level" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logger" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message" />
        </layout>
      </parameter>
    </appender>

    <!--         ,             。                   。-->
    <root>
      <!--        -->
      <appender-ref ref="LogFileAppender" />
      <!--         -->
      <!--<appender-ref ref="ConsoleAppender" />-->
      <!--Windows    -->
      <!--<appender-ref ref="EventLogAppender" />-->
      <!--             ,           -->
      <!--<appender-ref ref="AdoNetAppender_Access" />-->
    </root>

    <logger name="AppLogging">
      <!--<level value="Info"/>-->
      <level value="All"/>
    </logger>

  </log4net>

</configuration>

ステップ3でlog 4 Netを追加します.dll参照、LogOustクラスの作成
public class LogOuts
    {
        public static void Debug(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            if(log.IsDebugEnabled)
            {
                log.Debug(message);
            }
        }

        public static void Error(string message)
        {
            //log4net.ILog log = log4net.LogManager.GetLogger("log4net");
            log4net.ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            if(log.IsErrorEnabled)
            {
                log.Error(message);
            }
        }

        public static void Fatal(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            if(log.IsFatalEnabled)
            {
                log.Fatal(message);
            }

        }

        public static void Info(string message)
        {
            //log4net.ILog log = log4net.LogManager.GetLogger("log4net");
            log4net.ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            if(log.IsInfoEnabled)
            {
                log.Info(message);
            }

        }

        public static void Warn(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            if(log.IsWarnEnabled)
            {
                log.Warn(message);
            }
        }
    }

ステップ4では、LogOutsクラスが存在するクラスライブラリのPropertiesの下にあるAssemblyInfo.csでの追加
WINFORMアプリケーションの場合は、[assembly:log 4 net.Config.DOMConfigurator()]または[assembly:log 4 net.Config.XmlConfigurator()]WEBFORMの場合は[assembly:log 4 net.Config.DOMConfigurator(ConfigFile="web.config",Watch=true)に参加できます.
ステップ5、呼び出し、ログへの書き込み.ログを記録する必要がある場所で次の呼び出しを行えばいいです.
LogOuts.Info(「ログ記録成功!」);