Эх сурвалжийг харах

在适配器log中加入文件名行号的输出信息

tanghai 13 жил өмнө
parent
commit
2200b061f9

+ 1 - 0
CSharp/App/Editor/Editor.csproj

@@ -134,6 +134,7 @@
     <None Include="app.config" />
     <None Include="NLog.config">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+      <SubType>Designer</SubType>
     </None>
     <None Include="Packages.config" />
   </ItemGroup>

+ 5 - 4
CSharp/App/Modules/Robot/RobotViewModel.cs

@@ -59,10 +59,11 @@ namespace Modules.Robot
 
 		public void Start()
 		{
-			for (int i = 0; i < 4095; ++i)
-			{
-				StartClient();
-			}
+			Logger.Trace("11111111111111111111111");
+			//for (int i = 0; i < 4095; ++i)
+			//{
+			//	StartClient();
+			//}
 		}
 	}
 }

+ 0 - 9
CSharp/Platform/Log/ILog.cs

@@ -1,9 +0,0 @@
-
-namespace Log
-{
-    public interface ILog
-    {
-		void Trace(string message);
-	    void Debug(string message);
-    }
-}

+ 20 - 0
CSharp/Platform/Log/ILogger.cs

@@ -0,0 +1,20 @@
+
+namespace Log
+{
+    public interface ILogger
+    {
+		bool FileName
+		{
+			get;
+			set;
+		}
+
+		bool FileLineNumber
+		{
+			get;
+			set;
+		}
+		void Trace(string message);
+	    void Debug(string message);
+    }
+}

+ 2 - 2
CSharp/Platform/Log/Log.csproj

@@ -45,8 +45,8 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="Logger.cs" />
-    <Compile Include="ILog.cs" />
-    <Compile Include="NLog.cs" />
+    <Compile Include="ILogger.cs" />
+    <Compile Include="NLoggerAdapter.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="Packages.config" />

+ 11 - 3
CSharp/Platform/Log/Logger.cs

@@ -3,16 +3,24 @@ namespace Log
 {
 	public static class Logger
 	{
-		private static readonly ILog logger = new NLog();
+		private static readonly ILogger globalLogger = new NLoggerAdapter();
+
+		public static ILogger GlobalLogger
+		{
+			get
+			{
+				return globalLogger;
+			}
+		}
 
 		public static void Trace(string message)
 		{
-			logger.Trace(message);
+			globalLogger.Trace(message);
 		}
 
 		public static void Debug(string message)
 		{
-			logger.Debug(message);
+			globalLogger.Debug(message);
 		}
 	}
 }

+ 0 - 19
CSharp/Platform/Log/NLog.cs

@@ -1,19 +0,0 @@
-using NLog;
-
-namespace Log
-{
-	public class NLog: ILog
-	{
-		private readonly global::NLog.Logger logger = LogManager.GetCurrentClassLogger();
-
-		public void Trace(string message)
-		{
-			logger.Trace(message);
-		}
-
-		public void Debug(string message)
-		{
-			logger.Debug(message);
-		}
-	}
-}

+ 67 - 0
CSharp/Platform/Log/NLoggerAdapter.cs

@@ -0,0 +1,67 @@
+using System.Diagnostics;
+using System.IO;
+using NLog;
+
+namespace Log
+{
+	public class NLoggerAdapter: ILogger
+	{
+		private const string SEP = " ";
+
+		private readonly NLog.Logger logger = LogManager.GetCurrentClassLogger();
+
+		public NLoggerAdapter()
+		{
+			this.FileName = true;
+			this.FileLineNumber = true;
+		}
+
+		public bool FileName
+		{
+			get;
+			set;
+		}
+
+		public bool FileLineNumber
+		{
+			get;
+			set;
+		}
+
+		public string GetExtraInfo()
+		{
+			if (!this.FileLineNumber && !this.FileName)
+			{
+				return SEP;
+			}
+
+			string extraInfo = "";
+			var stackTrace = new StackTrace(true);
+			var frame = stackTrace.GetFrame(3);
+
+			if (FileName)
+			{
+				var fileName = Path.GetFileName(frame.GetFileName());
+				extraInfo += fileName + " ";
+			}
+			if (FileLineNumber)
+			{
+				var fileLineNumber = frame.GetFileLineNumber();
+				extraInfo += fileLineNumber + " ";
+			}
+			extraInfo += SEP;
+
+			return extraInfo;
+		}
+
+		public void Trace(string message)
+		{
+			logger.Trace(GetExtraInfo() + message);
+		}
+
+		public void Debug(string message)
+		{
+			logger.Debug(GetExtraInfo() + message);
+		}
+	}
+}