最初のステップ:
Log4net.dllを追加し、適用します。次に、Web.configファイルに次の設定イニングを追加
<configSections>
<セクション名= "log4netの"タイプ= "log4net.Config.Log4NetConfigurationSectionHandler、log4netの" />
</ configSections>
ステップ2:
新しいLog4Net.configコンフィギュレーションファイル、および次の構成情報を追加します。
<xmlのバージョン= "1.0"エンコード= "UTF-8"?>
<log4netのデバッグ= "false"に>
<! -日の日付によって分割されたログファイル- >
<アペンダ名=タイプの"LogFileAppenderByDate" =「log4netの.Appender.RollingFileAppender ">
<! -執筆かどうか- >
<PARAM NAME =" trueにAppendToFile "の値を="「/>
<! -複数のプロセスが同じファイルに書き込むことができるようにする最低限のロックモデル- >
の<paramの名前= "LockingModel"値= "log4net.Appender.FileAppender.MinimalLock" />
<PARAM NAME = "trueに" "StaticLogFileName"値= />
<! -保存パス- >
の<paramの名前=「ファイル"値=" D:\ \\ログ"/>
<PARAM NAME =" DatePattern "値=" MM-DD-YYYY。LOG」/>
<PARAM NAME = "StaticLogFileName"値= "偽" />
<PARAM NAME = "RollingStyle"値= "日付" />
<レイアウトタイプ= "log4net.Layout.PatternLayout">
<PARAM名= "ConversionPattern"値=「時間:%D%Nレベル:%レベルの%Nクラス名:%Cは%Nファイル:%のF%Lの最初の行% %のM%N -----------------------------------------%:N内容をログ%N-N - "/>
</レイアウト>
</アペンダ>
<! -ログサイズが10キロバイト割ることによってログファイル- >
<アペンダ名=" LogFileAppenderBySize "タイプ=" log4net.Appender.RollingFileAppenderを「>
<! -かどうかを書き込み- >
の<paramの名前=「trueに」「AppendToFile」値= />
<! -複数のプロセスが同じファイルに書き込むことができるようにする最低限のロックモデル- >
の<paramの名前=「LockingModel」値= "log4net.Appender.FileAppender.MinimalLock" />
"真の"の<paramの名前= "StaticLogFileName"値=/>
<! -ログファイルが、ファイルのサイズに応じて変換されます- >
ます。<param name = "RollingStyle"値= "サイズ" />
ます。<param name = "ファイル"値= "log.txtという" />
<! -サイズによってセグメント化する場合にのみ有効であれば、個々のファイルの最大数- >
の<paramの名前= "MaximumFileSize"値= "200キロバイト" />
< ! -サイズによって前に自動的に削除されたログファイルの数がこの金額以上に維持するために後にセグメント化されたときにのみ有効の場合- >
の<paramの名前=「MaxSizeRollBackups」値=「2」/>
<PARAM NAME =「StaticLogFileName」値= "偽の" />
<レイアウトTYPE = "log4net.Layout.PatternLayout">
<名前= "ConversionPattern"値=「PARAM発生時間:%D%のn-レベルのイベント:%水準%Nクラス名:%Cは%N手続ファイル:%の%F%のL行Nは、コンテンツを記録します。%のM%のN --------------------------------- %N-N-%--------「/>
</レイアウト>
</アペンダ>
<! -データベースにログインします- >
<アペンダ名= "AdoNetAppender"タイプ= "log4net.Appender.AdoNetAppender">
<bufferSizeの値= "1" />
<! -缓冲大小- >
<connectionTypeに値= "System.Data.SqlClient.SqlConnection、System.Data、バージョン= 1.0.3300.0、カルチャニュートラル、PublicKeyToken = = b77a5c561934e089" />
<のConnectionString値= "データソース= \ SQLEXPRESS;初期カタログ= CVDS。ユーザーID =寺;パスワード=ササ"/>
<CommandTextを値=" INSERT INTOログ([日付]、[スレッド]、[レベル]、[ロガー]、[メッセージ]、[例外])VALUES(@log_date、@スレッド、@log_level、@logger、@message、@exception)」/>
<パラメータ>
<ParameterNameが値= "@ log_date" />
<値のdbType = "日時" />
<レイアウトTYPE = "log4net.Layout.RawTimeStampLayout" />
</パラメータ>
<パラメータ>
<ParameterNameが値= "スレッド@" />
<のdbType値= "文字列" />
<サイズ値= "255" />
<レイアウトTYPE = "log4net.Layout.PatternLayout">
<conversionPattern値= "%スレッド" />
</レイアウト>
</パラメータ>
<パラメータ>
"LOG_LEVEL @" <ParameterNameが値= />
<のdbType値= "文字列" />
<サイズ値= "50" />
<レイアウトTYPE = "log4net.Layout.PatternLayout">
<conversionPattern値= "%レベル" />
</レイアウト>
</パラメータ>
<パラメータ>
<ParameterNameが値= "ロガー@" />
<のdbType値= "文字列"/>
<サイズ値= "255" />
<レイアウトTYPE = "log4net.Layout.PatternLayout">
<conversionPattern値= "%ロガー" />
</レイアウト>
</パラメータ>
<パラメータ>
<ParameterNameが値= "メッセージ@" />
<のdbType値= "文字列" />
<サイズ値= "4000" />
<レイアウトタイプ= "log4net.Layout.PatternLayout">
<conversionPattern値= "%メッセージ" />
</レイアウト>
</パラメータ>
<パラメータ>
<ParameterNameが値= "例外@" />
<のdbType値= "文字列" / >
<サイズ値= "2000" />
<レイアウト= "log4net.Layoutを入力。ExceptionLayout "/>
</パラメータ>
</アペンダ>
<ルート>
<レベル値=" INFO「/>
<! - > -スプリット日付で有効になって
<REF-REF =アペンダ"LogFileAppenderByDate" />
<! -分割がボリュームで有効になって- >
<! - <REF-REF =アペンダ"LogFileAppenderBySizeは" /> - >
<! -データベースを保存するために有効- >
<! - <REF-REF =アペンダ"AdoNetAppender" /> - >
</ルート>
</ log4netの>
第三段階:
Global.asaxファイルのApplication_Startイベントに次のコードを追加します。
保護された空のApplication_Start(オブジェクト送信者、EventArgsの電子)
{
//コードアプリケーションの起動時に実行すること
log4net.Config.XmlConfigurator.ConfigureAndWatch(新しいのFileInfo(Server.MapPathの( "Log4Net.config")));
}
ステップ4:ライトコールログlog4netの
無効Button2_Clickは(SENDERオブジェクト、のEventArgs E)保護
{
のILogログLogManager.GetLogger =(typeof演算(テスト));
logs.Fatal( "Excption:これは、ログに提示する情報です");
}
また、LogHelper.csカテゴリを書き込むことによってカプセル化することができます。
システムを使用しました。
System.Collections.Genericを使用しました。
System.Webのを使用して、
log4netのを使用して、
名前空間SBIT.Web.Class
{
/// <要約>
///日志辅助类
/// </要約>
パブリッククラスLogHelper
{
プライベート静的アイログログ。
プライベート静的LogHelper logHelper = NULL;
/// <要約>
///初始化
/// </要約>
/// <戻る> </復帰>
のpublic staticのILogでGetInstance()
{
logHelper =新しいLogHelper(NULL)。
ログを返します。
}
/// <要約>
///初始化
/// </要約>
/// <PARAM NAME = "はconfigPath"> </ PARAM>
/// <戻る> </復帰>
のpublic staticのILogでGetInstance(文字列はconfigPath)
{
logHelper =新しいLogHelper(はconfigPath)。
ログを返します。
}
/// <要約>
///构造函数
/// </要約>
///ます。<param name = "はconfigPath"> </ param>の
プライベートLogHelper(文字列はconfigPath)
{
(!string.IsNullOrEmpty(はconfigPath)の場合)
{
ログ= log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod()。
log4net.Config.XmlConfigurator.Configure(新しいSystem.IO.FileInfo(はconfigPath));
}
他
{
ログ= log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod()DeclaringType。)。
}
}
}
}
次のようなクラスをカプセル化することにより、書き込みログの方法は以下のとおりです。
//LogManager.GetLogger(typeof(TEST));ログのILog静的読み取り専用プライベートLogHelper.GetInstanceを()=
ボイド保護Button2_Click(SENDERオブジェクト、のEventArgs E)
{
logs.Fatal( "Excption:このログに提示する情報です" );
}