Log使用LogEventInfo传递自定义属性时应该怎样配置
时间: 2024-09-23 07:09:02 浏览: 38
C# EF Mvc log4net自定义扩展字段,自定义属性
在Log4net或者NLog这类日志框架中,如果你希望通过`LogEventInfo`传递自定义属性,通常你会在创建或填充`LogEventInfo`对象时设置额外的数据字段。对于NLog,这可能是这样的:
```csharp
using NLog;
...
var logEvent = new LogEventInfo(
level: LogLevel.Info,
message: "Custom message",
// 添加自定义属性
properties: new Dictionary<string, object> {
{ "MyCustomProperty", "CustomValue" },
// 添加更多自定义属性...
}
);
Logger logger = LogManager.GetCurrentClassLogger();
logger.Log(logEvent);
```
在这个例子中,`properties`字典用于存储自定义属性,键是字符串形式的属性名,值可以是任何类型的对象。然后你在日志记录时会将这个`LogEventInfo`实例传递给`Log`方法。
而在Log4net中,类似的做法如下:
```csharp
using log4net;
...
var logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
var properties = new NameValueCollection();
properties.Add("MyCustomProperty", "CustomValue");
var logEvent = new LoggingEvent(logger, DateTime.Now, Level.Info, message, null, properties);
logger.Logger.Log(logEvent);
```
这里的`NameValueCollection`也是用来存储自定义属性的。
阅读全文