如何使用 log4net 库从 Log table 获取日志数据?
How to get logs data from the Log table using log4net library?
我使用 SQL 服务器连接实现了 Log4Net。
我的问题是我无法在日志 table 中看到日志数据,直到我从 运行 停止 IIS Express。
这对我来说似乎很奇怪,因为当我点击 link 时我并没有立即看到数据。基本上,当我单击 link 而没有从 运行.
停止 IIS 时,我应该在日志 table 中看到日志数据
(数据库是远程托管的,我使用的是 C#)
有什么建议吗?
谢谢!!
AdoNetAppender 使用缓冲模型将消息传递到底层源。他们这样做的主要原因是通过不创建和提交多个 sql 事务而不是一个来提高性能。
根据文档,
此 appender 在传送日志事件之前使用缓冲区来存储日志事件。触发事件导致整个缓冲区被发送到远程接收器。如果缓冲区在触发事件之前溢出,则记录事件可能会丢失。将 Lossy 设置为 false 以防止日志记录事件丢失。
更新:
您可以将缓冲区大小设置为 >= 1
<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" />
<bufferSize value="1" />
希望对您有所帮助。
我使用 SQL 服务器连接实现了 Log4Net。
我的问题是我无法在日志 table 中看到日志数据,直到我从 运行 停止 IIS Express。
这对我来说似乎很奇怪,因为当我点击 link 时我并没有立即看到数据。基本上,当我单击 link 而没有从 运行.
停止 IIS 时,我应该在日志 table 中看到日志数据(数据库是远程托管的,我使用的是 C#)
有什么建议吗? 谢谢!!
AdoNetAppender 使用缓冲模型将消息传递到底层源。他们这样做的主要原因是通过不创建和提交多个 sql 事务而不是一个来提高性能。
根据文档,
此 appender 在传送日志事件之前使用缓冲区来存储日志事件。触发事件导致整个缓冲区被发送到远程接收器。如果缓冲区在触发事件之前溢出,则记录事件可能会丢失。将 Lossy 设置为 false 以防止日志记录事件丢失。
更新:
您可以将缓冲区大小设置为 >= 1
<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" />
<bufferSize value="1" />
希望对您有所帮助。