使用log4net登录数据库 [英] logging into DB with log4net
问题描述
我使用log4net
记录项目中的错误.我想将消息记录到DB(SQL Server
)中,所以我添加了AdoNetAppender
,但它不起作用(其他附加程序也可以正常工作,连接字符串正确).
有什么问题吗?
I use log4net
for logging errors in my project. I want to log messages into DB (SQL Server
) so I added AdoNetAppender
but it does not work (other appenders work fine, connection string is correct).
What can be wrong?
推荐答案
我决定创建一个简单的示例项目.这行得通.也许您应该尝试使其工作.
I decided to create a bare-bones example project. This works. Perhaps you should try making it work.
创建一个空的控制台应用程序项目.添加对log4net的引用. C#代码:
Create an empty console application project. Add a reference to log4net. C# Code:
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配置.
That's about as simple as it gets. If you can make this work, then I'd start looking very closely at your app's AdoNetAppender configuration.
这篇关于使用log4net登录数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!