我正在使用 log4net 按照我到目前为止所遵循的步骤登录 asp.net 应用程序
首先我使用 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");
它的日志记录完美,但问题是它在以这种方式运行应用程序时重复插入空日志
并多次插入相同的日志。
谁能指导反复插入空日志和多次插入同一日志的原因是什么?