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