【问题标题】:Log4Net c# AdoNetAdapter Additional FieldsLog4Net c# AdoNetAdapter 附加字段
【发布时间】:2020-11-10 21:59:19
【问题描述】:

我已经看到了多个关于如何执行此操作的链接,并且我的版本在技术上可以正常工作。

示例:Example

因此,我在代码中添加了一个新属性 Unit_Name。

for (int i = 0; i < 5; i++)
{
    log4net.GlobalContext.Properties["Unit_Name"] = "Bob " + i.ToString();
    log.Fatal("This is fatal");
}

在控制台 Appender 的配置文件中

 <appender name="console" type="log4net.Appender.ConsoleAppender">
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %level %logger  %property{unit_name} - %message %newline" />
  </layout>
 </appender>

这很有效,因此我将其添加到了我的 AdoNetAdapter 部分。

      <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[UnitName],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger,@unit_name, @message, @exception)" />

还有一个参数部分

  <parameter>
    <parameterName value="@unit_name" />
    <dbType value="String" />
    <size value="200" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%property(Unit_Name)" />
    </layout>
  </parameter>

现在测试一切仍在工作,但上面的参数应该显示字符串 Bob 1、Bob 2 等。但是在查看数据库表时,我得到以下信息:

{log4net:HostName=GBRCL33199, log4net:Identity=, log4net:UserName=userName, Unit_Name=Bob 0}(Unit_Name)

这一定是配置错误,但我看不到我在哪里或做错了什么。

【问题讨论】:

    标签: c# log4net log4net-configuration log4net-appender


    【解决方案1】:

    感谢那些看过这个的人。

    我知道这一定是我做的。碰巧,改变下面的conversionPattern字符串

    <parameter>
        <parameterName value="@unit_name" />
        <dbType value="String" />
        <size value="200" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%property(Unit_Name)" />
        </layout>
    </parameter>
    

    <parameter>
        <parameterName value="@unit_name" />
        <dbType value="String" />
        <size value="200" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%property{Unit_Name}" />
        </layout>
    </parameter>
    

    解决了这个问题。或者,如果您仍然看不到它。我将“%property(Unit_Name)”更改为“%property{Unit_Name}”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多