From 669f258cbe145ba37cee5b31015c6cdc8b08bdfa Mon Sep 17 00:00:00 2001 From: Jack.Peng <jack.peng@broconcentric.com> Date: 星期一, 15 三月 2021 21:07:57 +0800 Subject: [PATCH] 1.修复Bro.Comn丢失Util文件加里的内容。 --- Bro.Comn/Log/BroClog4net.xml | 63 +++++++++ Bro.Comn/Log/LogTraceListener.cs | 217 +++++++++++++++++++++++++++++++ Bro.Comn/Log/LogHelper.cs | 124 +++++++++++++++++ 3 files changed, 404 insertions(+), 0 deletions(-) diff --git a/Bro.Comn/Log/BroClog4net.xml b/Bro.Comn/Log/BroClog4net.xml new file mode 100644 index 0000000..737a344 --- /dev/null +++ b/Bro.Comn/Log/BroClog4net.xml @@ -0,0 +1,63 @@ +<?xml version="1.0"?> +<configuration> + <configSections> + <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> + </configSections> + <log4net> + <!--Log4net Begin by Bruce 2016.06.14--> + <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> + <file value=".\logs\" /> + <appendToFile value="true" /> + <!--log淇濈暀澶╂暟--> + <maxSizeRollBackups value= "30"/> + <rollingStyle value="Composite" /> + <maxSizeRollBackups value="10" /> + <maximumFileSize value="50MB" /> + <!--鏃ュ織鏂囦欢鍚嶆槸鍚︽槸鍥哄畾涓嶅彉鐨�--> + <staticLogFileName value= "false"/> + <!--鏃ュ織鏂囦欢鍚嶆牸寮忎负:2008-08-31.log--> + <datePattern value= "yyyy-MM-dd'.log'"/> + <layout type="log4net.Layout.PatternLayout"> + <conversionPattern value="%date [%2thread][%-5level]> %message%newline" /> + </layout> + <!--<filter type="log4net.Filter.LevelRangeFilter"> + <param name="LevelMin" value="DEBUG" /> + <param name="LevelMax" value="INFO" /> + </filter>--> + </appender> + + <!--Log4net Begin by Eric 2017.09.14--> + <appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender"> + <file value=".\logs\" /> + <appendToFile value="true" /> + <!--log淇濈暀澶╂暟--> + <maxSizeRollBackups value= "30"/> + <rollingStyle value="Composite" /> + <maxSizeRollBackups value="10" /> + <maximumFileSize value="50MB" /> + <!--鏃ュ織鏂囦欢鍚嶆槸鍚︽槸鍥哄畾涓嶅彉鐨�--> + <staticLogFileName value= "false"/> + <!--鏃ュ織鏂囦欢鍚嶆牸寮忎负:2008-08-31.log--> + <datePattern value= "yyyy-MM-dd'_ERR.log'"/> + <layout type="log4net.Layout.PatternLayout"> + <conversionPattern value="%date [%2thread][%-5level]> %message%newline" /> + </layout> + <filter type="log4net.Filter.LevelRangeFilter"> + <param name="LevelMin" value="ERROR" /> + <param name="LevelMax" value="FATAL" /> + </filter> + </appender> + + <!-- setup the root category, add the appenders and set the default level --> + <root> + <level value="ALL"/> + <appender-ref ref="RollingFileAppender" /> + <appender-ref ref="ErrorRollingFileAppender" /> + </root> + <!-- specify the level for some specific categories --> + + </log4net> + <!--Log4net End--> + + +</configuration> \ No newline at end of file diff --git a/Bro.Comn/Log/LogHelper.cs b/Bro.Comn/Log/LogHelper.cs new file mode 100644 index 0000000..f55f825 --- /dev/null +++ b/Bro.Comn/Log/LogHelper.cs @@ -0,0 +1,124 @@ +锘縰sing log4net; +using System.IO; +using System.Reflection; + +namespace Bro.Common.Log +{ + public class LogHelper + { + public const string DFT_CONFIG_FILE = "BroC.Comn.Log.BroClog4net.xml"; + + private static ILog log = null; + + private static LogHelper inst; + + /// <summary> + /// 鍒濆鍖� + /// </summary> + /// <returns></returns> + public static LogHelper GetInstance() + { + if (inst == null) + inst = new LogHelper(null); + return inst; + } + /// <summary> + /// 鍒濆鍖� + /// </summary> + /// <param name="configPath"></param> + /// <returns></returns> + public static LogHelper GetInstance(string configPath) + { + if (inst == null) + inst = new LogHelper(configPath); + return inst; + } + /// <summary> + /// 鏋勯�犲嚱鏁� + /// </summary> + /// <param name="configPath"></param> + private LogHelper(string configPath) + { + var type = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType; + log = log4net.LogManager.GetLogger(type); + + // 1. 浼樺厛浣跨敤鎵嬪姩鎸囧畾鐨刲og4net閰嶇疆鏂囦欢 + // 2. 涓嶅瓨鍦ㄦ墜鍔ㄦ寚瀹氶厤缃枃浠讹紝鍒欎娇鐢ㄩ粯璁ら厤缃� + if (!string.IsNullOrEmpty(configPath) && File.Exists(configPath)) + { + try + { + log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(configPath)); + } + catch + { + // 榛樿鐨刲og4net閰嶇疆鏂囦欢浣滀负鍐呭祵寮忔枃浠剁紪璇戣繘搴旂敤闆嗗悎鍐� + var sm = Assembly.GetExecutingAssembly().GetManifestResourceStream(DFT_CONFIG_FILE); + log4net.Config.XmlConfigurator.Configure(sm); + } + } + else + { + // 榛樿鐨刲og4net閰嶇疆鏂囦欢浣滀负鍐呭祵寮忔枃浠剁紪璇戣繘搴旂敤闆嗗悎鍐� + var sm = Assembly.GetExecutingAssembly().GetManifestResourceStream(DFT_CONFIG_FILE); + log4net.Config.XmlConfigurator.Configure(sm); + } + } + + #region 鍚勭骇鍒棩蹇楁柟娉� + + + public void Debug(string msg) + { + + log.Debug(msg); + } + + public void DebugFormat(string format, params object[] args) + { + log.DebugFormat(format, args); + } + + public void Info(string msg) + { + log.Info(msg); + } + + public void InfoFormat(string format, params object[] args) + { + log.InfoFormat(format, args); + } + + public void Warn(string msg) + { + log.Warn(msg); + } + + public void WarnFormat(string format, params object[] args) + { + log.WarnFormat(format, args); + } + + public void Error(string msg) + { + log.Error(msg); + } + + public void ErrorFormat(string format, params object[] args) + { + log.ErrorFormat(format, args); + } + + public void Fatal(string msg) + { + log.Fatal(msg); + } + + public void FatalFormat(string format, params object[] args) + { + log.FatalFormat(format, args); + } + + #endregion + } +} diff --git a/Bro.Comn/Log/LogTraceListener.cs b/Bro.Comn/Log/LogTraceListener.cs new file mode 100644 index 0000000..47ab4ba --- /dev/null +++ b/Bro.Comn/Log/LogTraceListener.cs @@ -0,0 +1,217 @@ +锘縰sing 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); + + // 鏃ュ織浜嬩欢浠g悊 + 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 娴嬭瘯浠g爜(鍕垮垹) +#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 + } +} -- Gitblit v1.8.0