log4net_データベース方式レコード

10893 ワード

最初にlog 4 netを追加する.dll参照
2番目にlog 4 netをコピーします.configからWebサイトのルートディレクトリの下
3番目
C/Sアプリケーション:(アプリケーションメインエントリmainメソッドでは、必ずプログラムをロードする前に)
string strDataDir = AppDomain.CurrentDomain.BaseDirectory.ToLower();



  if(strDataDir.EndsWith(@"\bin\debug\") || strDataDir.EndsWith(@"\bin\release")){



    strDataDir = System.IO.Directory.GetParent(strDataDir).Parent.Parent.FullName;

          AppDomain.CurrentDomain.SetData("DataDirectory", strDataDir);



  }



  log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(strDataDir + @"\log4net.config"),true );




Webサイト:
log 4 netをコピーConfig.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"\log4net.config")); Globalへaspx.cs
第四に、テーブルの作成
CREATE TABLE [dbo].[log4net_log] (       

	[Id] [int] IDENTITY (1, 1) NOT NULL,        

	[Date] [datetime]  NULL,        --      

	[Thread] [varchar] (255)  NULL, --  ID(  )

	[Level] [varchar] (50)  NULL,	--    (FALAT,ERROR,WARN,INFO,DEBUG)

	[Logger] [varchar] (255)  NULL,  --    

	[Message] [varchar] (4000) NULL,   --  

	[Millisecond] [varchar] (255),				--              

	[Line] [varchar] (255),				--  

	[FileName] [varchar] (255),			--        

	[ClassName] [Varchar] (255),		--  

	--[Exception] [varchar](4000) NULL      

	[Exception] [text] NULL		--                 

)


第五にlog 4 netを修正する.config
<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <configSections>

    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>

  </configSections>

  <appSettings>

  </appSettings>

  <log4net>

    <!--        -->

    <!--

    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">

      -->

    <!--        -->

    <!--

      <file value="logs\\" />

      <appendToFile value="true" />

      <rollingStyle value="Date" />

      <param name="DatePattern" value="yyyyMMdd".log"" />

      <staticLogFileName value="false"/>

      <layout type="log4net.Layout.PatternLayout">

        -->

    <!--           -->

    <!--

        -->

    <!--           -->

    <!--

        -->

    <!--<footer value="by    " />

        <header value="by wujialong"/>-->

    <!--

        -->

    <!--    -->

    <!--

        -->

    <!--  :2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->

    <!--

        <conversionPattern value="    :%date   ID:[%thread]     :%-5level    :%logger property:[%property{NDC}] -     :%message%newline" />

      </layout>     

    </appender>-->



    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">

      <!--      -->

      <!--    ,        -->

      <!--         -->

      <param name="File" value="Kodlog\\Logs\\"/>

      <param name="AppendToFile" value="true" />

      <!--   :Once|Size|Date|Composite-->

      <!--Composite Size Date   -->

      <param name="RollingStyle" value="Date" />

      <!--      ,        -->

      <!--   *.txt , :AX.txt_2008-07-24.PxP           bug-->

      <!--   *.TXT , :AX.txt_2008-07-25.TXT-->

      <param name="DatePattern" value="yyyyMMdd".log"" />

      <!--  true,            file     -->

      <param name="StaticLogFileName" value="false" />

      <param name="MaxSizeRollBackups" value="100" />

      <param name="MaxFileSize" value="10240" />

      <!--       -->

      <layout type="log4net.Layout.PatternLayout">

        <!--    -->

        <param name="ConversionPattern" value="  :%date   ID:[%thread]     :%-5level    :%logger property:[%property{NDC}][  :%L] -     :%message%newline"/>

        <param name="Header" value="

----------------------header--------------------------

" />

        <param name="Footer" value="

----------------------footer--------------------------

" />

      </layout>

      <!--<filter type="log4net.Filter.LevelRangeFilter">

        <param name="LevelMin" value="WARN" />

        <param name="LevelMax" value="FATAL" />

      </filter>-->

    </appender>



    <!--            -->

    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />

      </layout>

    </appender>



    <!--     windows   -->

    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />

      </layout>

    </appender>

    <!--         ,       Access    ,    log4net.mdb-->

    <appender name="AdoNetAppender_SQL" type="log4net.Appender.AdoNetAppender">

      <bufferSize value="5" />

      <connectionType value="System.Data.SqlClient.SqlConnection,System.Data, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" />

      <connectionString value="Server=.;Initial Catalog=gy01tuan;Integrated Security=True;" />

      <commandText value="INSERT INTO log4net_log([ClassName],[FileName],[Line],[Millisecond], [Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES(@ClassName, @FileName, @Line, @Millisecond, @log_date, @thread, @log_level, @logger, @message, @exception)"/>



      <parameter>

        <parameterName value="@ClassName" />

        <dbType value="String" />

        <size value="255" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%c" />

        </layout>

      </parameter>

      <parameter>

        <parameterName value="@FileName" />

        <dbType value="String" />

        <size value="255" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%F" />

        </layout>

      </parameter>

      <parameter>

        <parameterName value="@Line" />

        <dbType value="String" />

        <size value="255" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%L" />

        </layout>

      </parameter>

      <parameter>

        <parameterName value="@Millisecond" />

        <dbType value="String" />

        <size value="255" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%r" />

        </layout>

      </parameter>





      <parameter>

        <parameterName value="@log_date" />

        <dbType value="DateTime" />

        <layout type="log4net.Layout.RawTimeStampLayout" />

      </parameter>



      <parameter>

        <parameterName value="@thread" />

        <dbType value="String" />

        <size value="255" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%thread" />

        </layout>

      </parameter>



      <parameter>

        <parameterName value="@log_level" />

        <dbType value="String" />

        <size value="50" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%level" />

        </layout>

      </parameter>



      <parameter>

        <parameterName value="@logger" />

        <dbType value="String" />

        <size value="255" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%logger" />

        </layout>

      </parameter>



      <parameter>

        <parameterName value="@message" />

        <dbType value="String" />

        <size value="4000" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%message" />

        </layout>

      </parameter>



      <parameter>

        <parameterName value="@exception" />

        <dbType value="String" />

        <size value="4000"/>

        <layout type="log4net.Layout.ExceptionLayout" />

      </parameter>

    </appender>



    <!--         ,             。                   。-->

    <root>

      <level value="ALL" />



      <!--        -->

      <appender-ref ref="LogFileAppender"/>

      <!--         -->

      <appender-ref ref="ConsoleAppender" />

      <!--Windows    

      <appender-ref ref="EventLogAppender" />-->

      <!--             ,           -->

      <appender-ref ref="AdoNetAppender_SQL" />



    </root>



  </log4net>

</configuration>




AdoNetAppender_を有効にすることを意味しますSQL関連の構成
log 4 netは、複数のターゲットにログを記録することができます.
 
以上の5歩、順位は前後を区別しないで、全部すればいいです.
最後に、6番目に、記録が必要な場所で宣言します.
    private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
そして
    lon.Info(「テスト」);
log 4 net内部のエラーはコンソールに出力されるので、以上の結果が出ない場合は、コンソールアプリケーションを作成し、log 4 netをコンソールに出力できるように構成することをお勧めします.これにより、出力情報に基づいてどこが構成されているのか問題がわかります.
皆さん、まだ分からないことがなければ、QQ:77915862を追加してもいいです.