log4net.ext.json:仅记录消息 属性
log4net.ext.json: logging just the message property
我正在使用 log4net.ext.json 将 'message' 属性 序列化到我的日志中。但是,当我使用标准配置时,'message' 对象作为 属性 包含在另一个对象中。
这是我的配置
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.SerializedLayout, log4net.Ext.Json">
<decorator type='log4net.Layout.Decorators.StandardTypesDecorator, log4net.Ext.Json' />
<default /><!--explicit default members-->
<remove value='message' /><!--remove the default preformatted message member-->
<member value='message:messageobject' /><!--add raw message-->
</layout>
</parameter>
但是,正在记录的数据不仅仅记录消息对象,它还包括其他上下文信息,例如应用程序名称、级别和异常。
由于添加的堆栈跟踪文本有时会超过数据库中的最大字段大小,因此记录异常时会出现此问题。
date": "2016-05-20T09:06:18.6288814+10:00",
"level": "WARN",
"appname": "/LM/W3SVC/3/ROOT-1-131081726390968061",
"logger": "DefaultLogger",
"thread": "10",
"ndc": "(null)",
-"message": {
"Message": "Model validation errors",
"Method": "LogValidationErrorsAttribute.OnActionExecuting",
"IsLocal": true,
"IsAuthenticated": false,
"IsSecureConnection": false,
"HttpMethod": "POST",
"CurrentUICulture": "en",
"CurrentCulture": "en",
}
我想要做的就是记录只是这个特定参数中的日志事件对象的'message'属性。
基本上,它在日志中应该是这样的:
{
"Message": "Model validation errors",
"Method": "LogValidationErrorsAttribute.OnActionExecuting",
"IsLocal": true,
"IsAuthenticated": false,
"IsSecureConnection": false,
"HttpMethod": "POST",
"CurrentUICulture": "en",
"CurrentCulture": "en",
}
知道怎么做吗?
删除 <default/>
元素。它告诉布局在事件中包含所有默认属性。
请注意,属性 名称 ("message") 将保留,但是:
{
"message": {
"Message": "Model validation errors",
"Method": "LogValidationErrorsAttribute.OnActionExecuting",
...
}
}
我正在使用 log4net.ext.json 将 'message' 属性 序列化到我的日志中。但是,当我使用标准配置时,'message' 对象作为 属性 包含在另一个对象中。
这是我的配置
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.SerializedLayout, log4net.Ext.Json">
<decorator type='log4net.Layout.Decorators.StandardTypesDecorator, log4net.Ext.Json' />
<default /><!--explicit default members-->
<remove value='message' /><!--remove the default preformatted message member-->
<member value='message:messageobject' /><!--add raw message-->
</layout>
</parameter>
但是,正在记录的数据不仅仅记录消息对象,它还包括其他上下文信息,例如应用程序名称、级别和异常。
由于添加的堆栈跟踪文本有时会超过数据库中的最大字段大小,因此记录异常时会出现此问题。
date": "2016-05-20T09:06:18.6288814+10:00",
"level": "WARN",
"appname": "/LM/W3SVC/3/ROOT-1-131081726390968061",
"logger": "DefaultLogger",
"thread": "10",
"ndc": "(null)",
-"message": {
"Message": "Model validation errors",
"Method": "LogValidationErrorsAttribute.OnActionExecuting",
"IsLocal": true,
"IsAuthenticated": false,
"IsSecureConnection": false,
"HttpMethod": "POST",
"CurrentUICulture": "en",
"CurrentCulture": "en",
}
我想要做的就是记录只是这个特定参数中的日志事件对象的'message'属性。
基本上,它在日志中应该是这样的:
{
"Message": "Model validation errors",
"Method": "LogValidationErrorsAttribute.OnActionExecuting",
"IsLocal": true,
"IsAuthenticated": false,
"IsSecureConnection": false,
"HttpMethod": "POST",
"CurrentUICulture": "en",
"CurrentCulture": "en",
}
知道怎么做吗?
删除 <default/>
元素。它告诉布局在事件中包含所有默认属性。
请注意,属性 名称 ("message") 将保留,但是:
{
"message": {
"Message": "Model validation errors",
"Method": "LogValidationErrorsAttribute.OnActionExecuting",
...
}
}