log4net:错误使用 Postgres SQL 的 null 'element' 参数调用ConfigureFromXml

问题描述 投票:0回答:1

当我们尝试在 postgres sql 中插入日志文件时,我们面临以下问题:

log4net:使用空“元素”参数调用ConfigureFromXml 时出现错误。

在此代码中,我们尝试使用 Asp.net core 在 postgres SQL 中插入日志文件。

在startup.cs文件中的configservice()代码下:

return services.AddAbp<DTSWebHostModule>(options =>
{
    //Configure Log4Net logging
    options.IocManager.IocContainer.AddFacility<LoggingFacility>(
        f => f.UseAbpLog4Net().WithConfig(_hostingEnvironment.IsDevelopment()
            ? "log4net.config"
            : "log4net.Production.config")

    );

});

log4net.config 文件中的代码:

<configuration>

    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
    <log4net>
        <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
            <connectionType value="Npgsql.NpgsqlConnection, Npgsql" />
            <connectionString value="User ID=postgres;Password=password;Host=localhost;Port=5432;Database=DTSPowerToolsPostgres;Pooling=true;" />
            <commandText value="INSERT INTO public.log ( thread, log_level, logger, message, exception) 
                      VALUES ( @thread, @log_level, @Source, @message, @exception)" />
            <commandType value="Text" />

            <bufferSize value="1" />

            <lossy value="false" />

            <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="@Source" />
                <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>
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
            <appSettings>
                <add key="log4net.Internal.Debug" value="true"/>
            </appSettings>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date %-5level %logger - %message%newline" />
            </layout>
        </appender>
        <root>
            <level value="DEBUG" />
            <appender-ref ref="AdoNetAppender" />
        </root>
    </log4net>

</configuration>
xml postgresql asp.net-core logging log4net
1个回答
0
投票

log4net.config
配置文件中的根节点是
<log4net></log4net>
。所以需要修改
log4net.config
文件如下。

<?xml version="1.0" encoding="utf-8" ?>
<!-- Log4net Logging Setup -->
<log4net>
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
        <connectionType value="Npgsql.NpgsqlConnection, Npgsql" />
        <connectionString value="User ID=postgres;Password=password;Host=localhost;Port=5432;Database=DTSPowerToolsPostgres;Pooling=true;" />
        <commandText value="INSERT INTO public.log ( thread, log_level, logger, message, exception) 
                  VALUES ( @thread, @log_level, @Source, @message, @exception)" />
        <commandType value="Text" />

        <bufferSize value="1" />

        <lossy value="false" />

        <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="@Source" />
            <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>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
        <appSettings>
            <add key="log4net.Internal.Debug" value="true"/>
        </appSettings>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %-5level %logger - %message%newline" />
        </layout>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="AdoNetAppender" />
    </root>
</log4net>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.