我使用 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");
我想在运行时使用字段。这可能是肯定的,请你告诉我如何。
答案 0 :(得分:1)
如果您没有指定任何<field>
映射,那么将保存包含所有已定义参数的标准文档,如下例所示:
{
"level": "INFO",
"message": "this is the default page 2",
"properties": {
"userdata": "Dinkar thakur"
}
}
以THIS测试为例。