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