How can I log in database with log4net in .net 5

Viewed 227

I am using log4net for logging in my project. I can successfully log to the file, but not to the database.

To test the correctness of the database path I gave in log4netconfig, I made an add operation and the record was added successfully. My database path is correct, the table name is correct, the types in the table are correct but the record is not imported into the database. Could it be an error in the ConnectionType value? After checking the version via Nuget, I changed the data.sqlclient version to 4.8.3.

My log4net.config file on the below.

<?xml version="1.0" encoding="utf-8" ?>

<log4net>
    <appender name="JsonFileLogger" type="log4net.Appender.FileAppender,log4net">
        <file value="C://Users//burak//Documents//Github//iesyazilim//ies-eshop-integration//backend//asp-net-core//test//EShopIntegration.Business.Test//bin//Debug//net5.0//log.json" />
        <layout type="EShopIntegration.Core.CrossCuttingConcerns.Logging.Log4Net.Layouts.JsonLayout" ></layout>
    </appender>
    <appender name="DatabaseLogger" type="MicroKnights.Logging.AdoNetAppender, MicroKnights.Log4NetAdoNetAppender">
        <bufferSize value="1" />
        <connectionType value="System.Data.SqlClient.SqlConnection,System.Data.SqlClient,Version=4.8.3,Culture=neutral,PublicKeyToken=b77a5c561934e089" />
        <connectionString value="Data Source=DESKTOP-LKMPMHS;Initial Catalog=Burak;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" />
        <commandText value="INSERT INTO Logs ([Detail],[Date],[Audit]) VALUES (@logDetail,@log_date,@audit)" />
        <parameter>
            <parameterName value="@logDetail" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="EShopIntegration.Core.CrossCuttingConcerns.Logging.Log4Net.Layouts.JsonLayout"></layout>
        </parameter>
        <parameter>
            <parameterName value="@log_date" />
            <dbType value="DateTime" />
            <layout type="log4net.Layout.PatternLayout" value="%date{dd'-'MM'-'yyyy HH':'mm':'ss'.'fff}" />
        </parameter>
        <parameter>
            <parameterName value="@audit" />
            <dbType value="String" />
            <size value="50" />
            <layout type="log4net.Layout.PatternLayout" value="%level" />
        </parameter>
    </appender>

    <logger name="JsonFileLogger">
        <level value="ALL"></level>
        <appender-ref ref="JsonFileLogger"/>
    </logger>

    <logger name="DatabaseLogger">
        <level value="ALL"></level>
        <appender-ref ref="DatabaseLogger"/>
    </logger>

</log4net>
0 Answers
Related