[英]logging into DB with log4net
我使用log4net
记录项目中的错误。 我想将消息记录到DB( SQL Server
)中,所以我添加了AdoNetAppender
但是它不起作用(其他附加程序可以正常工作,连接字符串正确)。 有什么事吗
我决定创建一个简单的示例项目。 这可行。 也许您应该尝试使其工作。
创建一个空的控制台应用程序项目。 添加对log4net的引用。 C#代码:
using log4net;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Litter
{
class Program
{
static void Main()
{
LogManager.GetLogger("default").Info("Hello, World!");
}
}
}
配置文件:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <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=localhost\\sqlexpress;initial catalog=Litter;integrated security=True;"/> <commandText value="INSERT INTO Logs ([Message]) VALUES (@message)"/> <parameter> <parameterName value="@message"/> <dbType value="String"/> <size value="2000"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message"/> </layout> </parameter> </appender> <root> <level value="DEBUG"/> <appender-ref ref="AdoNetAppender"/> </root> </log4net> </configuration>
数据库表:
CREATE TABLE [dbo].[Logs]([Message] [nvarchar](2000) NOT NULL) GO
那差不多就变得简单了。 如果可以完成这项工作,那么我将开始非常仔细地研究您的应用程序的AdoNetAppender配置。
谢谢你们。 问题出在数据库中。 我只需要将RowGuid
属性设置为true。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.