我希望在其值为空时排除自定义字段名称
我的配置文件
<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 = {&#34; Rule1&#34;:&#34; 1&#34;} MethodName =&#34;方法&#34;
当有规则时,我们可以使日志像这样
2016-03-25 04:46:54,057 [9] INFO MethodName =&#34; Method&#34;
答案 0 :(得分:1)
我认为在没有自定义代码的情况下执行此操作的唯一方法是使Rules
属性包含整个字符串,包括它的标题:如果有规则,则只设置值。
if (Rules.Any())
log4net.LogicalThreadContext.Properties["Rules"] = "Rules = " + Rules;
并配置:
<conversionPattern value= "%date [%thread] %-5level %property{Rules}
MethodName =%property{MethodName} %message%newline" />