在运行时登录时将自定义属性添加到Log4mongo

时间:2014-05-27 12:01:58

标签: log4net log4net-configuration

我使用 log4mongo / log4mongo-net 来记录MongoDB中的.net异常。并且它们工作正常,但我在使用自定义字段时遇到问题,同时记录错误。 我的appender看起来像

<log4net>
 <appender name="MongoDBAppender" type="Log4Mongo.MongoDBAppender, Log4Mongo">
     <connectionString value="mongodb://localhost" />
     <collectionName value="testlogs" />
 <field>
    <name value="timestamp" />
    <layout type="log4net.Layout.RawTimeStampLayout" />
 </field>
 <field>
    <name value="level" />
    <layout type="log4net.Layout.PatternLayout" value="%level" />
 </field>
 <field>
    <name value="thread" />
    <layout type="log4net.Layout.PatternLayout" value="%thread" />
 </field>
 <field>
    <name value="logger" />
    <layout type="log4net.Layout.PatternLayout" value="%logger" />
 </field>
 <field>
    <name value="message" />
    <layout type="log4net.Layout.PatternLayout" value="%message" />
 </field>
 <field>
<name value="userdata" />
<layout type="log4net.Layout.PatternLayout" value="%userdata" />
 </field>
 </appender>
 <root>
    <level value="ALL" />
<appender-ref ref="MongoDBAppender" />
 </root>
</log4net>

我正在调用它

 LogLog.InternalDebugging = true;
 ILog logger = LogManager.GetLogger(this.GetType());
 MDC.Set("userdata", "Dinkar thakur");
 logger.Info("this is the default page 2");

我想在运行时使用字段。这可能是肯定的,请你告诉我如何。

1 个答案:

答案 0 :(得分:1)

如果您没有指定任何<field>映射,那么将保存包含所有已定义参数的标准文档,如下例所示:

{
  "level": "INFO",
  "message": "this is the default page 2",
  "properties": {
    "userdata": "Dinkar thakur"
  }
}

THIS测试为例。