Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何在log4net ADONetAppender中使用存储过程?_Logging_Log4net_Adonetappender - Fatal编程技术网

Logging 如何在log4net ADONetAppender中使用存储过程?

Logging 如何在log4net ADONetAppender中使用存储过程?,logging,log4net,adonetappender,Logging,Log4net,Adonetappender,我正在使用ADONetAppender(尝试)通过存储过程记录数据(以便将逻辑注入日志记录例程) 下面列出了我的配置设置。谁知道我做错了什么 多亏了一位警惕的DBA,我们解决了这个问题 请注意“@Message”参数的大小。log4net正在猜测如何转换该类型,以及(我认为)如何将其转换为nvarchar,即使该列是varchar。这是一个大问题,因为nvarchar的最大大小为4000,而varchar的最大大小为8000 DBA发现了本文所述的错误: 我把尺寸改为4000,一切都很顺利 希望

我正在使用ADONetAppender(尝试)通过存储过程记录数据(以便将逻辑注入日志记录例程)

下面列出了我的配置设置。谁知道我做错了什么


多亏了一位警惕的DBA,我们解决了这个问题

请注意“@Message”参数的大小。log4net正在猜测如何转换该类型,以及(我认为)如何将其转换为nvarchar,即使该列是varchar。这是一个大问题,因为nvarchar的最大大小为4000,而varchar的最大大小为8000

DBA发现了本文所述的错误:

我把尺寸改为4000,一切都很顺利

希望这能帮助其他人避免同样的问题

干杯


使用“AnsiString”作为varchar的数据库类型。nvarchar的“字符串”

</configSections>
<log4net>

    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">

        <bufferSize value="1"/>

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

        <connectionString value="Data Source=yourservername;initial Catalog=Databasename;User ID=sa;Password=xyz;"/>



        <commandText value="INSERT INTO Log4Net ([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 ip=%property{ip}"/>

            </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>