| New file |
| | |
| | | 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 |
| | | } |
| | | } |