0

これまでに行った手順に従って、asp.netアプリケーションにログインするためにlog4netを使用しています

まず、nudget パッケージ マネージャーを使用して log4net を追加し、次に新しい構成ファイル名 "log4net.config" を作成します。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")]次に、これをアセンブリ ファイルに追加します。

次に、log4net.configで次のように構成します

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5.2" />
  </system.web>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4Net.Configuration, log4net"/>
  </configSections>              

  <log4net >
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
      <bufferSize value="1" />
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      <connectionString value="data source=datasourse;initial catalog=DBName;integrated security=false;persist security info=True;User ID=userID;Password=Password" />
      <commandText value="INSERT INTO Log ([JsonStringLog],[Date]) VALUES (@stringLog,@log_date)" />
      <parameter>
        <parameterName value="@log_date" />
        <dbType value="DateTime" />
        <layout type="log4net.Layout.RawTimeStampLayout" />
      </parameter>
      <parameter>
        <parameterName value="@stringLog" />
        <dbType value="String" />
        <size value="4000" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%property{strngLog}" />
        </layout>
      </parameter>
    </appender>

    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="filename" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="date: %date%newlineMessage: %property{CustomeErrorMessage}%newlineLocation: %property{stack}%newline" />
      </layout>
    </appender>

    <root>
      <level value="DEBUG" />
      <appender-ref ref="AdoNetAppender" />
      <!--<appender-ref ref="FileAppender" />-->
    </root>
  </log4net>
</configuration>

次に、コントローラークラスで、このようなロガーオブジェクトを作成します

private static readonly ILog logger = LogManager.GetLogger(typeof(HomeController));

このようにロガーを使用します

log4net.GlobalContext.Properties["propertyname"] = "hello";
logger.Debug("debug");

そのログは完璧ですが、問題は、このようにアプリケーションを実行するとnullログが繰り返し挿入されることです

ここに画像の説明を入力

同じログを複数回挿入します。

null ログが繰り返し挿入され、同じログが複数回挿入される原因を特定できる人はいますか?

4

0 に答える 0