Files
Wx_AUTS_Prod/APIserver/LogServer/ExceptionLogMessage.cs
2025-11-26 17:42:45 +08:00

125 lines
4.1 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using log4net.Core;
using log4net.Layout.Pattern;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LogServer
{
/// <summary>
/// 一般操作
/// </summary>
public class ExceptionLogMessage
{
/// <summary>
/// 操作人
/// </summary>
public string Operationer { get; set; }
/// <summary>
/// 客户端IP
/// </summary>
public string IP { get; set; }
/// <summary>
/// 浏览器请求头
/// </summary>
public string Header { get; set; }
/// <summary>
/// 请求地址
/// </summary>
public string Url { get; set; }
/// <summary>
/// 功能点名称
/// </summary>
public string ActionName { get; set; }
public Exception exception { get; set; }
public override string ToString()
{
return string.Format("功能点:{0} \n操作者{1} \nIP{2} \n头部信息{3} \n来自页面{4} 错误信息:{5}", ActionName, Operationer, IP, Header, Url, exception.ToString());
}
}
public class ExceptionLayout : log4net.Layout.PatternLayout
{
public ExceptionLayout()
{
this.AddConverter("exceptionMessage", typeof(ExceptionPatternConverter));
this.AddConverter("ActionName", typeof(ActionNameExceptionPatternConverter));
this.AddConverter("Operationer", typeof(OperationerExceptionPatternConverter));
this.AddConverter("IP", typeof(IPExceptionPatternConverter));
this.AddConverter("Header", typeof(HeaderExceptionPatternConverter));
this.AddConverter("Url", typeof(UrlExceptionPatternConverter));
}
}
internal sealed class ActionNameExceptionPatternConverter : PatternLayoutConverter
{
override protected void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
ExceptionLogMessage logMessage = loggingEvent.MessageObject as ExceptionLogMessage;
if (logMessage != null)
writer.Write(logMessage.ActionName);
}
}
internal sealed class OperationerExceptionPatternConverter : PatternLayoutConverter
{
override protected void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
ExceptionLogMessage logMessage = loggingEvent.MessageObject as ExceptionLogMessage;
if (logMessage != null)
writer.Write(logMessage.Operationer);
}
}
internal sealed class IPExceptionPatternConverter : PatternLayoutConverter
{
override protected void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
ExceptionLogMessage logMessage = loggingEvent.MessageObject as ExceptionLogMessage;
if (logMessage != null)
writer.Write(logMessage.IP);
}
}
internal sealed class HeaderExceptionPatternConverter : PatternLayoutConverter
{
override protected void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
ExceptionLogMessage logMessage = loggingEvent.MessageObject as ExceptionLogMessage;
if (logMessage != null)
writer.Write(logMessage.Header);
}
}
internal sealed class UrlExceptionPatternConverter : PatternLayoutConverter
{
override protected void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
ExceptionLogMessage logMessage = loggingEvent.MessageObject as ExceptionLogMessage;
if (logMessage != null)
writer.Write(logMessage.Url);
}
}
internal sealed class ExceptionPatternConverter : PatternLayoutConverter
{
override protected void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
ExceptionLogMessage logMessage = loggingEvent.MessageObject as ExceptionLogMessage;
if (logMessage != null)
writer.Write(logMessage.exception.ToString());
}
}
}