Ich habe eine AdoNetAppender
Setup wie folgt aus:Datensätze in log4net AdoNetAppender verzögert?
<log4net>
<appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
<connectionStringName value="DefaultConnection" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
<useTransactions value="false" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout" value="%thread" />
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout" value="%level" />
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout" value="%logger" />
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout" value="%message" />
</parameter>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="AdoNetAppender_SqlServer" />
</root>
</log4net>
Und es funktioniert technisch, denn wenn ich die Website zu stoppen, die die Aufzeichnungen zeigen, lokal auf IIS 8 Express ausgeführt wird. Das ist aber genau das Problem, die Aufzeichnungen erscheinen nicht, bis ich die Website stoppe.
Ich habe mit useTransactions
ein und aus versucht.
Kann jemand dabei helfen?
Ist das ein Leistungsmerkmal? Wenn ja, gibt es eine Möglichkeit, es zeitbasiert zu machen, anstatt auf der Größe des Puffers zu basieren (d. H., Dass alle Protokolle innerhalb von x Sekunden geleert werden). – NickG
Nicht, dass ich bewusst bin - eine schnelle Suche brachte diese Lösung jedoch: http://StackOverflow.com/Questions/30490536/flush-log4net-Buffer-with-Adonetappender –