我试图了解log4net是如何工作的,所以我已经将它添加到我的 app.config
(我应该添加控制台Appender和FileAppender完美地工作,我只是在使用AdoNetAppender时遇到问题) .
我该如何调试它,看看至少与db的连接是否成功?
问题是INSERT语句没有执行 . 我应该加上
Data Source=MyWorkgroup\SQLEXPRESS;Initial Catalog=MyNewDatabase;User ID=juan;password=juan,
当我尝试手动连接到SQL Server时工作正常,因此不确定是否存在问题 .
此外, ConnectionType
取自官方网站:https://logging.apache.org/log4net/log4net-1.2.11/release/sdk/log4net.Appender.AdoNetAppender.ConnectionType.html
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.log4netConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="AdoNetAppender"
type="log4net.Appender.AdoNetAppender">
<bufferSize value="10" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="Data Source=MyWorkgroup\SQLEXPRESS;Initial Catalog=MyNewDatabase;User ID=juan;Password=juan;Pooling=False" />
<commandText value="INSERT INTO Logs([logDate],[logThread],[logMessage]) VALUES(getdate(),'1','1')" />
<commandType value="Text" />
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="AdoNetAppender"/>
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
稍后编辑(使用David推荐的调试方法后):
haacked.com确实非常有趣,很棒!但是,似乎它正在描述我要指示log4net记录的内容,而不是这些操作的结果(?),如果我读得很好(没有失败/或成功?),例如
log4net:将属性[ConnectionType]设置为String值[System.Data.SqlClien t.SqlConnection,System.Data,Version = 1.0.3300.0,Culture = neutral,PublicKeyToke n = b77a5c561934e089] log4net:将Property [ConnectionString]设置为String值[数据源= MyWorkgroup \ SQLEXPRESS;初始目录= MyNewDatabase;用户名= juan;密码=娟; Pooling = False] log4net:将Property [CommandText]设置为String值[INSERT INTO Logs([logDate],[logThread],[logMessage])VALUES(getdate(),'1','1')] log4net:设置属性[CommandType] to CommandType value [Text] log4net:Created Appender [AdoNetAppender] log4net:将名为[AdoNetAppender]的appender添加到logger [root] . log4net:层次结构阈值[]
帮助我获取此信息的代码段(如果站点不可用)是:
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\temp\log4netdiagn.txt" />
</listeners>
</trace>
</system.diagnostics>