假设数据库中有如下自定义字段:
1、根据自定义字段定义日志信息对象
public class MessageLog
{
///
/// 短信发送是否成功
///
public int Success { get; set; }
///
/// 发送号码(可以多个,逗号分隔)
///
public string Mobiles { get; set; }
public string Message { get; set; }
///
/// 发送内容
///
public string Content { get; set; }
public override string ToString()
{
return this.Message;
}
}
2、根据自定义字段定义PatternConverter,以Content自定义字段为例,其它两个字段同
internal sealed class ContentPatternConverter : PatternLayoutConverter
{
protected override void Convert(System.IO.TextWriter writer, LoggingEvent loggingEvent)
{
var messageLog = loggingEvent.MessageObject as MessageLog;
if (messageLog != null)
{
writer.Write(messageLog.Content);
}
}
}
3、自定义PatternLayout
public class MessageLayout : PatternLayout
{
public MessageLayout()
{
this.AddConverter("Success", typeof(SuccessPatternConverter));
this.AddConverter("Mobiles", typeof(MobilesPatternConverter));
this.AddConverter("Content", typeof(ContentPatternConverter));
}
}
4、日志配置文件中添加数据库记录器并引用