0

log4netを使用してエラーメッセージをログに記録し、SQLを使用してデータベースに保存しようとしましたが、何も起こりません。これが私のコードです

            Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
            hierarchy.Root.RemoveAllAppenders(); /*Remove any other appenders*/
            log4net.Repository.Hierarchy.Logger rootLogger = hierarchy.Root;
            rootLogger.Level = hierarchy.LevelMap["ERROR"];


            AdoNetAppender ado = new AdoNetAppender();
            ado.ConnectionType = "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
            ado.ConnectionString = ConfigurationManager.AppSettings["MSSQLConnectionString_nvn1"];
            ado.CommandText = "INSERT INTO Log ([Date],[Thread],[Level],[Identity],[Username],[Logger],[Message]) VALUES (@log_date, @thread , @level , @identity , @username ,  @logger, @message)";
            ado.BufferSize = 1;
            ado.Threshold = log4net.Core.Level.Error;

            AdoNetAppenderParameter logd = new AdoNetAppenderParameter();
            logd.ParameterName = "@log_date";
            logd.DbType = DbType.DateTime;
            logd.Layout = new log4net.Layout.RawTimeStampLayout();
            ado.AddParameter(logd);

                ...........

            ado.ActivateOptions();
            log4net.Config.BasicConfigurator.Configure(ado);

ありがとう。

概要:誰かが私のコードをチェックして、log4netからデータベースにエラーメッセージを保存する方法についてアドバイスをくれませんか。

4

1 に答える 1

0

デフォルトのバッファ サイズは 512 であるため、設定ファイルまたはコードでバッファ サイズを「1」に設定します。

 <bufferSize value="1" />
于 2015-03-16T20:21:06.127 に答える