using System;
|
using System.Collections.Generic;
|
using System.Diagnostics;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.IO;
|
|
namespace Bro.Common.Log
|
{
|
|
/// <summary>
|
/// 默认的日志类
|
/// </summary>
|
public class LogTraceListener : TraceListener
|
{
|
public delegate void LogTraceEvent(TraceEventType evType, string msg);
|
|
// 日志事件代理
|
public LogTraceEvent LogEvent { get; set; }
|
|
private LogHelper log { get; set; }
|
|
public LogTraceListener()
|
{
|
log = LogHelper.GetInstance();
|
}
|
|
|
|
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string format, params object[] args)
|
{
|
switch (eventType)
|
{
|
case TraceEventType.Critical:
|
log.FatalFormat(format, args);
|
break;
|
case TraceEventType.Information:
|
log.InfoFormat(format, args);
|
break;
|
case TraceEventType.Warning:
|
log.WarnFormat(format, args);
|
break;
|
case TraceEventType.Error:
|
log.ErrorFormat(format, args);
|
break;
|
default:
|
log.DebugFormat(format, args);
|
break;
|
}
|
|
var sb = new StringBuilder();
|
sb.AppendFormat(@"{0}[{1}]> ", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"), eventCache.ThreadId);
|
sb.AppendFormat(format, args);
|
sb.AppendFormat(@"{0}", Environment.NewLine);
|
|
if (null != LogEvent)
|
{
|
LogEvent(eventType, sb.ToString());
|
}
|
}
|
|
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message)
|
{
|
switch (eventType)
|
{
|
case TraceEventType.Critical:
|
log.Fatal(message);
|
break;
|
case TraceEventType.Information:
|
log.Info(message);
|
break;
|
case TraceEventType.Warning:
|
log.Warn(message);
|
break;
|
case TraceEventType.Error:
|
log.Error(message);
|
break;
|
default:
|
log.Debug(message);
|
break;
|
}
|
|
var sb = new StringBuilder();
|
sb.AppendFormat(@"{0}[{1}]> {2}{3}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"), eventCache.ThreadId, message, Environment.NewLine);
|
|
if (null != LogEvent)
|
{
|
LogEvent(eventType, sb.ToString());
|
}
|
}
|
|
public override void WriteLine(string msg)
|
{
|
|
log.Fatal(msg);
|
var sb = new StringBuilder();
|
sb.AppendFormat(@"{0}[{1}]> {2}{3}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"), System.Threading.Thread.CurrentThread.ManagedThreadId, msg, Environment.NewLine);
|
|
if (null != LogEvent)
|
{
|
LogEvent(TraceEventType.Critical, sb.ToString());
|
}
|
}
|
|
public override void Write(string msg)
|
{
|
log.Fatal(msg);
|
var sb = new StringBuilder();
|
sb.AppendFormat(@"{0}[{1}]> {2}{3}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"), System.Threading.Thread.CurrentThread.ManagedThreadId, msg, Environment.NewLine);
|
|
if (null != LogEvent)
|
{
|
LogEvent(TraceEventType.Critical, sb.ToString());
|
}
|
}
|
|
#region 测试代码(勿删)
|
#if test
|
public override void Write(object o)
|
{
|
int i = 0;
|
i++;
|
}
|
|
public override void Write(string message, string category)
|
{
|
int i = 0;
|
i++;
|
}
|
|
public override void Fail(string message)
|
{
|
int i = 0;
|
i++;
|
}
|
|
public override void Fail(string message, string detailMessage)
|
{
|
int i = 0;
|
i++;
|
}
|
|
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string format, params object[] args)
|
{
|
base.TraceEvent(eventCache, source, eventType, id, format, args);
|
}
|
|
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message)
|
{
|
base.TraceEvent(eventCache, source, eventType, id, message);
|
}
|
|
public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data)
|
{
|
base.TraceData(eventCache, source, eventType, id, data);
|
}
|
|
public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, params object[] data)
|
{
|
base.TraceData(eventCache, source, eventType, id, data);
|
}
|
|
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id)
|
{
|
base.TraceEvent(eventCache, source, eventType, id);
|
}
|
|
public override void TraceTransfer(TraceEventCache eventCache, string source, int id, string message, Guid relatedActivityId)
|
{
|
base.TraceTransfer(eventCache, source, id, message, relatedActivityId);
|
}
|
|
public override void Write(object o, string category)
|
{
|
base.Write(o, category);
|
}
|
|
|
public override void WriteLine(string msg)
|
{
|
int i = 0;
|
i++;
|
|
}
|
|
public override void WriteLine(object o)
|
{
|
base.WriteLine(o);
|
}
|
|
public override void WriteLine(object o, string category)
|
{
|
base.WriteLine(o, category);
|
}
|
|
public override void WriteLine(string message, string category)
|
{
|
base.WriteLine(message, category);
|
}
|
|
|
/// <summary>
|
/// 日志输出
|
/// </summary>
|
/// <param name="msg"></param>
|
public override void Write(string msg)
|
{
|
|
int i = 0;
|
i++;
|
|
}
|
#endif
|
#endregion
|
}
|
}
|