log4net 在其值为空时排除自定义字段名称
log4net to exclude custom field name when its value is empty
我想排除值为空的自定义字段名称
我的配置文件
<conversionPattern value="%date [%thread] %-5level Rules =%property{Rules} MethodName =%property{MethodName} %message%newline" />
我的记录器
log4net.LogicalThreadContext.Properties["MethodName"] = method;
log4net.LogicalThreadContext.Properties["Rules"] = Rules;
输出:
2016-03-25 04:46:54,057 [9] INFO Rules = {"Rule1":"1"} MethodName
="Method"
有规则的时候能不能把日志做成这样
2016-03-25 04:46:54,057 [9] INFO MethodName ="Method"
我相信没有自定义代码的唯一方法是让 Rules
属性 包含整个字符串,包括它的标题:只有在有规则的情况下才设置值。
if (Rules.Any())
log4net.LogicalThreadContext.Properties["Rules"] = "Rules = " + Rules;
和配置:
<conversionPattern value= "%date [%thread] %-5level %property{Rules}
MethodName =%property{MethodName} %message%newline" />
我想排除值为空的自定义字段名称
我的配置文件
<conversionPattern value="%date [%thread] %-5level Rules =%property{Rules} MethodName =%property{MethodName} %message%newline" />
我的记录器
log4net.LogicalThreadContext.Properties["MethodName"] = method;
log4net.LogicalThreadContext.Properties["Rules"] = Rules;
输出:
2016-03-25 04:46:54,057 [9] INFO Rules = {"Rule1":"1"} MethodName ="Method"
有规则的时候能不能把日志做成这样
2016-03-25 04:46:54,057 [9] INFO MethodName ="Method"
我相信没有自定义代码的唯一方法是让 Rules
属性 包含整个字符串,包括它的标题:只有在有规则的情况下才设置值。
if (Rules.Any())
log4net.LogicalThreadContext.Properties["Rules"] = "Rules = " + Rules;
和配置:
<conversionPattern value= "%date [%thread] %-5level %property{Rules}
MethodName =%property{MethodName} %message%newline" />