Log4net Json自定义属性未被读取

时间:2015-04-18 22:05:50

标签: json log4net log4net-configuration log4net-appender

我使用log4net在sql数据库中插入JSON格式数据。一切都很好,除了没有保存的自定义属性。

这是我的配置:

<appender name="TGGADONetAppenderjson" 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=LOANER-1122-HP\SQLEXPRESS;Initial Catalog=CAS-Dev;integrated security=false;persist security info=True;User Id=sa;Password=abinash12345;" />
      <commandText value="INSERT INTO Log ([Message],[AppName],[TransactionId]) VALUES
       (@message, @appName,@transactionId)" />

 <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="4000" />
        <layout type="log4net.Layout.SerializedLayout, log4net.Ext.Json"></layout>
      </parameter>
<parameter>
        <parameterName value="@appName" />
        <dbType value="String" />
        <size value="2000" />
        <layout type="log4net.Layout.PatternLayout">
          <!--<conversionPattern value="%property{Environment}" />-->
          <conversionPattern value="APPNAME-LogTest" />
          <!--should be a fixed value-->
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@transactionId" />
        <dbType value="String" />
        <size value="2000" />
        <layout type="log4net.Layout.PatternLayout" >
          <conversionPattern value="%property{TransactionId}" />
        </layout>
      </parameter>
    </appender>

    <root>
      <level value="ALL" />
      <appender-ref ref="TGGADONetAppenderjson" />
    </root>

当我调试时,我可以看到自定义属性“TransactionId”的值被放入线程中。但是插入不起作用。 TransactionId未记录在消息中,也未插入到TransactionId列中。

我正在使用NuGet的log4net json版本1.2.13.29

1 个答案:

答案 0 :(得分:1)

进入SerializedLayout还有一些配置。您需要明确命名该属性。尝试类似:

split(df, cut(df$DEPTH, seq(min(df$DEPTH), max(df$DEPTH), by = 3), include.lowest = TRUE))
# $`[4700,4703]`
#    DEPTH    A     B     C     D      E      F      breaks
# 1 4700.0 8.75 9.313 0.120 0.138 89.164 72.613 [4700,4703]
# 2 4700.5 8.75 9.264 0.117 0.135 89.266 72.784 [4700,4703]
# 3 4701.0 8.75 9.376 0.112 0.132 89.520 68.443 [4700,4703]
# 4 4701.5 8.75 9.485 0.110 0.122 89.088 64.839 [4700,4703]
# 5 4702.0 8.75 9.564 0.116 0.108 89.377 64.388 [4700,4703]
# 6 4702.5 8.75 9.572 0.121 0.098 88.930 66.931 [4700,4703]
# 7 4703.0 8.75 9.524 0.122 0.093 89.651 70.906 [4700,4703]
# 
# $`(4703,4706]`
#    DEPTH    A     B     C     D      E      F      breaks
# 8 4703.5 8.75 9.395 0.124 0.091 90.486 75.106 (4703,4706]
# . ......

检查可能对您有帮助的Members test case

或者,通过添加<layout type='log4net.Layout.SerializedLayout, log4net.Ext.Json'> <decorator type='log4net.Layout.Decorators.StandardTypesDecorator, log4net.Ext.Json' /> <default /> <!-- explicit default members --> <member value='TransactionId' /> <!-- explicit property reference --> </layout> 成员序列化所有属性。