簡體   English   中英

使用log4net登錄數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM