Log4Net - Entrance to the Entity Framework database located in a separate project

First, I use Entity Framework code and try to run log4Net to log into my SQL Server database. I have set the buffer size to 1 and added

log4net.Config.XmlConfigurator.Configure(); 

to my Global.asaxfile.

I also added

<section name="log4net" 
         type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />  

However, there is still nothing in my SQL Server database. I have Entity Framework stuff in a separate project with ErrorLog data model. My log4Net settings are in the web.config file for my web project, and the web project has a link to my Entity Framework project.

Here is what I have in my web.configfor log4Net

<log4net>
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
        <bufferSize value="1" />
        <threshold value="ALL" />
        <connectionType value="System.Data.EntityClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <connectionString value="data source=(LocalDb)\MSSQLLocalDB;initial catalog=AutoForms;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" />
        <commandText value="INSERT INTO ErrorLog ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
        <parameter>
            <parameterName value="@log_date" />
            <dbType value="DateTime" />
            <layout type="log4net.Layout.RawTimeStampLayout" />
        </parameter>
        <parameter>
            <parameterName value="@thread" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%thread" />
            </layout>
        </parameter>
        <parameter>
            <parameterName value="@log_level" />
            <dbType value="String" />
            <size value="50" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%level" />
            </layout>
        </parameter>
        <parameter>
            <parameterName value="@logger" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%logger" />
            </layout>
        </parameter>
        <parameter>
            <parameterName value="@message" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="log4net.Layout.PatternLayout">
                 <conversionPattern value="%message" />
            </layout>
        </parameter>
        <parameter>
            <parameterName value="@exception" />
            <dbType value="String" />
            <size value="2000" />
            <layout type="log4net.Layout.ExceptionLayout" />
        </parameter>
    </appender>
    <root>
        <appender-ref ref="AdoNetAppender" />
    </root>
</log4net>

. , . log4Net app.config , Entity Framework. . .

+4
2

, .

<connectionType value="System.Data.EntityClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

connectionType. . , -.

+2

context.Database.Log EF .

nLog, :

    context.Database.Log = s=> LogManager.GetLogger("myLogger").Info(s);

, log4net, -

0

Source: https://habr.com/ru/post/1668963/


All Articles