log4net_データベース方式レコード
10893 ワード
最初にlog 4 netを追加する.dll参照
2番目にlog 4 netをコピーします.configからWebサイトのルートディレクトリの下
3番目
C/Sアプリケーション:(アプリケーションメインエントリmainメソッドでは、必ずプログラムをロードする前に)
Webサイト:
log 4 netをコピーConfig.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"\log4net.config")); Globalへaspx.cs
第四に、テーブルの作成
第五にlog 4 netを修正する.config
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を追加してもいいです.
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>
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を追加してもいいです.