添加自定义日志载体类
using System;
namespace Log4netDemo
{
class MyLog
{
public string Description { get; set; }
public DateTime ProcessDate { get; set; }
}
}
添加自定义Conventer
using log4net.Layout.Pattern;
using System.IO;
namespace Log4netDemo
{
class MyPatternConverter : PatternLayoutConverter
{
protected override void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
var result = loggingEvent.MessageObject as MyLog;
if (result != null)
{
writer.Write($"Description: {result.Description} ProcessingDate: {result.ProcessDate}");
}
}
}
}
注册自定义Converter
namespace Log4netDemo
{
class MyPatternLayout : log4net.Layout.PatternLayout
{
public MyPatternLayout()
{
this.AddConverter("result", typeof(MyPatternConverter));
}
}
}
配置使用自定义字段
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4netDemo.MyPatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%result] - %message%newline" />
</layout>
</appender>