lith il y a 3 ans
Parent
commit
156de0b568
42 fichiers modifiés avec 212 ajouts et 193 suppressions
  1. 2 2
      dotnet/Library/Sers/Sers.CL/Ipc/Sers.CL.Ipc.NamedPipe/DeliveryClient.cs
  2. 17 15
      dotnet/Library/Sers/Sers.CL/Ipc/Sers.CL.Ipc.NamedPipe/DeliveryServer.cs
  3. 10 8
      dotnet/Library/Sers/Sers.CL/Ipc/Sers.CL.Ipc.SharedMemory/DeliveryClient.cs
  4. 12 11
      dotnet/Library/Sers/Sers.CL/Ipc/Sers.CL.Ipc.SharedMemory/DeliveryServer.cs
  5. 2 2
      dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/Simple/DeliveryClient.cs
  6. 2 2
      dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/Simple/DeliveryServer.cs
  7. 2 2
      dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/ThreadWait/DeliveryClient.cs
  8. 2 2
      dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/ThreadWait/DeliveryServer.cs
  9. 2 2
      dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/Timer/DeliveryClient.cs
  10. 2 2
      dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/Timer/DeliveryServer.cs
  11. 2 2
      dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.ThreadWait/DeliveryClient.cs
  12. 13 13
      dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.ThreadWait/DeliveryServer.cs
  13. 2 2
      dotnet/Library/Sers/Sers.CL/WebSocket/Sers.CL.WebSocket/DeliveryClient.cs
  14. 38 35
      dotnet/Library/Sers/Sers.CL/WebSocket/Sers.CL.WebSocket/DeliveryServer.cs
  15. 2 2
      dotnet/Library/Sers/Sers.CL/Zmq/FullDuplex/Sers.CL.Zmq.FullDuplex/DeliveryClient.cs
  16. 3 3
      dotnet/Library/Sers/Sers.CL/Zmq/FullDuplex/Sers.CL.Zmq.FullDuplex/DeliveryServer.cs
  17. 2 2
      dotnet/Library/Sers/Sers.CL/Zmq/ThreadWait/Sers.CL.ClrZmq.ThreadWait/DeliveryClient.cs
  18. 3 3
      dotnet/Library/Sers/Sers.CL/Zmq/ThreadWait/Sers.CL.ClrZmq.ThreadWait/DeliveryServer.cs
  19. 3 3
      dotnet/Library/Sers/Sers.Core/Sers.Core/CL/MessageOrganize/DefaultOrganize/OrganizeClient.cs
  20. 1 1
      dotnet/Library/Sers/Sers.Core/Sers.Core/CL/MessageOrganize/DefaultOrganize/OrganizeServer.cs
  21. 1 1
      dotnet/Library/Sers/Sers.Core/Sers.Core/CL/MessageOrganize/DefaultOrganize/RequestAdaptor.cs
  22. 1 1
      dotnet/Library/Sers/Sers.Core/Sers.Core/Module/Api/LocalApi/LocalApiService/LocalApiService.cs
  23. 1 1
      dotnet/Library/Sers/Sers.Core/Sers.Core/Module/PubSub/Controller/SubscriberLoader.cs
  24. 1 1
      dotnet/Library/Sers/Sers.Core/Sers.Core/SersLoader/ApiLoader.cs
  25. 2 2
      dotnet/Library/Sers/Sers.Core/Sers.Core/Util/StreamSecurity/SecurityManager.cs
  26. 2 2
      dotnet/Library/Sers/Sers.Gateway/Sers.Gateway/GatewayHelp.cs
  27. 1 1
      dotnet/Library/Sers/Sers.Gateway/Sers.Gateway/RateLimit/RateLimitMng.cs
  28. 3 3
      dotnet/Library/Sers/Sers.ServiceStation/Sers.ServiceStation/ServiceStation.cs
  29. 14 4
      dotnet/Library/Vit/Vit.Core/Test/Vit.Core.MsTest/appsettings.json
  30. 2 18
      dotnet/Library/Vit/Vit.Core/Vit.Core/Module/Log/LogCollector/ConsoleCollector.cs
  31. 13 14
      dotnet/Library/Vit/Vit.Core/Vit.Core/Module/Log/LogCollector/SplunkCollector.cs
  32. 22 13
      dotnet/Library/Vit/Vit.Core/Vit.Core/Module/Log/LogCollector/TxtCollector.cs
  33. 9 1
      dotnet/Library/Vit/Vit.Core/Vit.Core/Module/Log/LogMng.cs
  34. 1 0
      dotnet/Library/Vit/Vit.Core/Vit.Core/Module/Log/Logger.cs
  35. 1 1
      dotnet/ServiceCenter/Sers.ServiceCenter/Apm/Sers.Gover.Apm.Zipkin/AppEvent.cs
  36. 2 2
      dotnet/ServiceCenter/Sers.ServiceCenter/Sers.Gover/Base/ApiStationMng.cs
  37. 8 8
      dotnet/ServiceCenter/Sers.ServiceCenter/Sers.Gover/Base/GoverApiCenterService.cs
  38. 2 2
      dotnet/ServiceCenter/Sers.ServiceCenter/Sers.ServiceCenter/ServiceCenter.cs
  39. 1 1
      dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/Logical/Worker/Worker_ApiClient.cs
  40. 1 1
      dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/Logical/Worker/Worker_ApiClientAsync.cs
  41. 1 1
      dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/Logical/Worker/Worker_HttpClient.cs
  42. 1 1
      dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/Logical/Worker/Worker_HttpUtil.cs

+ 2 - 2
dotnet/Library/Sers/Sers.CL/Ipc/Sers.CL.Ipc.NamedPipe/DeliveryClient.cs

@@ -36,7 +36,7 @@ namespace Sers.CL.Ipc.NamedPipe
 
         public bool Connect()
         {
-            Logger.Info("[CL.DeliveryClient] Ipc.NamedPipe, connecting... serverName:" + serverName + " pipeName:" + pipeName);
+            Logger.Info("[CL.DeliveryClient] Ipc.NamedPipe, connecting", new { serverName, pipeName });
 
             NamedPipeClientStream client;
             try
@@ -63,7 +63,7 @@ namespace Sers.CL.Ipc.NamedPipe
             _conn.Init(client);
 
             _conn.StartBackThreadToReceiveMsg();
-            Logger.Info("[CL.DeliveryClient] Ipc.NamedPipe, connected.");
+            Logger.Info("[CL.DeliveryClient] Ipc.NamedPipe, connected");
             return true;
         }
 

+ 17 - 15
dotnet/Library/Sers/Sers.CL/Ipc/Sers.CL.Ipc.NamedPipe/DeliveryServer.cs

@@ -6,13 +6,15 @@ using System.IO.Pipes;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
+
 using Sers.Core.CL.MessageDelivery;
+
 using Vit.Core.Module.Log;
 using Vit.Core.Util.Threading.Worker;
 
 namespace Sers.CL.Ipc.NamedPipe
 {
-    public class DeliveryServer: IDeliveryServer
+    public class DeliveryServer : IDeliveryServer
     {
         public Sers.Core.Util.StreamSecurity.SecurityManager securityManager;
 
@@ -23,7 +25,7 @@ namespace Sers.CL.Ipc.NamedPipe
 
 
         public Action<IDeliveryConnection> Conn_OnDisconnected { private get; set; }
-        public Action<IDeliveryConnection> Conn_OnConnected { private get; set; } 
+        public Action<IDeliveryConnection> Conn_OnConnected { private get; set; }
 
 
         /// <summary>
@@ -47,13 +49,13 @@ namespace Sers.CL.Ipc.NamedPipe
         {
             try
             {
-                Logger.Info("[CL.DeliveryServer] Ipc.NamedPipe, starting... pipeName:" + pipeName);
+                Logger.Info("[CL.DeliveryServer] Ipc.NamedPipe, starting", new { pipeName });
 
                 #region (x.1)检测命名管道是否已经在使用
                 try
                 {
 
-                    if (File.Exists("\\\\.\\pipe\\" + pipeName)) 
+                    if (File.Exists("\\\\.\\pipe\\" + pipeName))
                     {
                         Logger.Info("[CL.DeliveryServer] Ipc.NamedPipe, not started.pipeName already exists!");
                         return false;
@@ -78,7 +80,7 @@ namespace Sers.CL.Ipc.NamedPipe
                 catch (Exception ex)
                 {
                     Logger.Error(ex);
-                }               
+                }
                 #endregion
 
 
@@ -91,7 +93,7 @@ namespace Sers.CL.Ipc.NamedPipe
                     {
                         while (true)
                         {
-                            NamedPipeServerStream server = new NamedPipeServerStream(pipeName, PipeDirection.InOut, NamedPipeServerStream.MaxAllowedServerInstances,PipeTransmissionMode.Byte,PipeOptions.Asynchronous);
+                            NamedPipeServerStream server = new NamedPipeServerStream(pipeName, PipeDirection.InOut, NamedPipeServerStream.MaxAllowedServerInstances, PipeTransmissionMode.Byte, PipeOptions.Asynchronous);
 
                             //Console.WriteLine($"[{id}]服务器管道已创建。");
 
@@ -120,7 +122,7 @@ namespace Sers.CL.Ipc.NamedPipe
             {
                 Logger.Error(ex);
             }
-            return false;         
+            return false;
 
         }
 
@@ -129,7 +131,7 @@ namespace Sers.CL.Ipc.NamedPipe
 
         #region Stop
 
-      
+
 
         /// <summary>
         /// 停止服务
@@ -137,15 +139,15 @@ namespace Sers.CL.Ipc.NamedPipe
         public void Stop()
         {
             //(x.1) stop conn
-            ConnectedList.ToList().ForEach(Delivery_OnDisconnected);            
+            ConnectedList.ToList().ForEach(Delivery_OnDisconnected);
             connMap.Clear();
 
             //(x.2) close
             Task.Run(() =>
             {
-                Logger.Info("[CL.DeliveryServer] Ipc.NamedPipe, stop...");       
+                Logger.Info("[CL.DeliveryServer] Ipc.NamedPipe, stoping");
 
-                tcpListenerAccept_BackThread.Stop();                 
+                tcpListenerAccept_BackThread.Stop();
 
                 Logger.Info("[CL.DeliveryServer] Ipc.NamedPipe, stoped");
 
@@ -163,8 +165,8 @@ namespace Sers.CL.Ipc.NamedPipe
             var conn = new DeliveryConnection();
             conn.securityManager = securityManager;
             conn.Init(client);
-        
-            conn.Conn_OnDisconnected = Delivery_OnDisconnected; 
+
+            conn.Conn_OnDisconnected = Delivery_OnDisconnected;
             connMap[conn.GetHashCode()] = conn;
 
             try
@@ -182,8 +184,8 @@ namespace Sers.CL.Ipc.NamedPipe
         }
 
         private void Delivery_OnDisconnected(IDeliveryConnection _conn)
-        { 
-            var conn = (DeliveryConnection)_conn; 
+        {
+            var conn = (DeliveryConnection)_conn;
 
             connMap.TryRemove(conn.GetHashCode(), out _);
 

+ 10 - 8
dotnet/Library/Sers/Sers.CL/Ipc/Sers.CL.Ipc.SharedMemory/DeliveryClient.cs

@@ -1,6 +1,8 @@
 using System;
+
 using Sers.CL.Ipc.SharedMemory.Stream;
 using Sers.Core.CL.MessageDelivery;
+
 using Vit.Core.Module.Log;
 
 namespace Sers.CL.Ipc.SharedMemory
@@ -10,7 +12,7 @@ namespace Sers.CL.Ipc.SharedMemory
 
         public DeliveryClient()
         {
-            _conn = new DeliveryConnection();      
+            _conn = new DeliveryConnection();
         }
 
         /// <summary>
@@ -18,15 +20,15 @@ namespace Sers.CL.Ipc.SharedMemory
         /// </summary>
         public Action<IDeliveryConnection, ArraySegment<byte>> Conn_OnGetFrame { set => _conn.OnGetFrame = value; }
 
-        public Action<IDeliveryConnection> Conn_OnDisconnected {  set => _conn.OnDisconnected = value; }
+        public Action<IDeliveryConnection> Conn_OnDisconnected { set => _conn.OnDisconnected = value; }
 
-        readonly DeliveryConnection _conn ;
+        readonly DeliveryConnection _conn;
         public IDeliveryConnection conn => _conn;
 
 
 
         //-------------------------------------------------------
- 
+
 
         /// <summary>
         /// 共享内存名称
@@ -36,13 +38,13 @@ namespace Sers.CL.Ipc.SharedMemory
 
         public void Close()
         {
-            _conn.Close();           
+            _conn.Close();
         }
 
         public bool Connect()
         {
 
-            Logger.Info("[CL.Ipc] Ipc.SharedMemory,connecting... name:" + name);          
+            Logger.Info("[CL.Ipc] Ipc.SharedMemory,connecting", new { name });
 
             if (!_conn.InitAsClient(name))
             {
@@ -57,8 +59,8 @@ namespace Sers.CL.Ipc.SharedMemory
                 return false;
             }
 
-          
-            Logger.Info("[CL.Ipc] Ipc.SharedMemory,connected.");
+
+            Logger.Info("[CL.Ipc] Ipc.SharedMemory,connected");
             return true;
         }
     }

+ 12 - 11
dotnet/Library/Sers/Sers.CL/Ipc/Sers.CL.Ipc.SharedMemory/DeliveryServer.cs

@@ -1,11 +1,13 @@
 using System;
 using System.Collections.Generic;
+
 using Sers.Core.CL.MessageDelivery;
+
 using Vit.Core.Module.Log;
 
 namespace Sers.CL.Ipc.SharedMemory
 {
-    public class DeliveryServer :  IDeliveryServer
+    public class DeliveryServer : IDeliveryServer
     {
         public Sers.Core.Util.StreamSecurity.SecurityManager securityManager { set => _conn.securityManager = value; }
 
@@ -46,15 +48,15 @@ namespace Sers.CL.Ipc.SharedMemory
 
         }
 
-        public Action<IDeliveryConnection > Conn_OnDisconnected { private get; set; }
+        public Action<IDeliveryConnection> Conn_OnDisconnected { private get; set; }
         public Action<IDeliveryConnection> Conn_OnConnected { private get; set; }
 
         readonly DeliveryConnection _conn;
- 
-        public IEnumerable<IDeliveryConnection> ConnectedList =>new[]{ _conn };
+
+        public IEnumerable<IDeliveryConnection> ConnectedList => new[] { _conn };
+
 
 
- 
 
 
         /// <summary>
@@ -69,8 +71,8 @@ namespace Sers.CL.Ipc.SharedMemory
         /// <summary>
         /// 共享内存节点大小
         /// </summary>
-        public int nodeBufferSize { get; set; } = 10240;   
- 
+        public int nodeBufferSize { get; set; } = 10240;
+
 
         public void Stop()
         {
@@ -79,9 +81,8 @@ namespace Sers.CL.Ipc.SharedMemory
 
         public bool Start()
         {
-            Logger.Info("[CL.Ipc] Ipc.SharedMemory,starting... name:" + name);
+            Logger.Info("[CL.Ipc] Ipc.SharedMemory,starting", new { name });
 
-  
 
             if (!_conn.InitAsServer(name, nodeCount, nodeBufferSize))
             {
@@ -97,9 +98,9 @@ namespace Sers.CL.Ipc.SharedMemory
             {
                 Stop();
                 return false;
-            }             
+            }
 
-            Logger.Info("[CL.Ipc] Ipc.SharedMemory,started.");
+            Logger.Info("[CL.Ipc] Ipc.SharedMemory,started");
             return true;
         }
     }

+ 2 - 2
dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/Simple/DeliveryClient.cs

@@ -12,7 +12,7 @@ namespace Sers.CL.Socket.Iocp.Mode.Simple
         {
             try
             {
-                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connecting... host:" + host + " port:" + port);
+                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connecting", new { host, port });
 
 
                 if (!base.Connect()) 
@@ -21,7 +21,7 @@ namespace Sers.CL.Socket.Iocp.Mode.Simple
                 }
 
 
-                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connected.");
+                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connected");
                 return true;
             }
             catch (Exception ex)

+ 2 - 2
dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/Simple/DeliveryServer.cs

@@ -12,14 +12,14 @@ namespace Sers.CL.Socket.Iocp.Mode.Simple
         {  
             try
             {
-                Logger.Info("[CL.DeliveryServer] Socket.Iocp,starting... host:" + host + " port:" + port);
+                Logger.Info("[CL.DeliveryServer] Socket.Iocp,starting", new { host, port });
 
                 if (!base.Start()) 
                 {
                     return false;
                 }
 
-                Logger.Info("[CL.DeliveryServer] Socket.Iocp,started.");
+                Logger.Info("[CL.DeliveryServer] Socket.Iocp,started");
                 return true;
             }
             catch (Exception ex)

+ 2 - 2
dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/ThreadWait/DeliveryClient.cs

@@ -38,7 +38,7 @@ namespace Sers.CL.Socket.Iocp.Mode.ThreadWait
         {
             try
             {
-                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connecting... host:" + host + " port:" + port);
+                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connecting", new { host, port });
 
 
                 if (!base.Connect())
@@ -53,7 +53,7 @@ namespace Sers.CL.Socket.Iocp.Mode.ThreadWait
                 Send_task.Start();
 
 
-                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connected.");
+                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connected");
                 return true;
             }
             catch (Exception ex)

+ 2 - 2
dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/ThreadWait/DeliveryServer.cs

@@ -37,7 +37,7 @@ namespace Sers.CL.Socket.Iocp.Mode.ThreadWait
         {
             try
             {
-                Logger.Info("[CL.DeliveryServer] Socket.Iocp,starting... host:" + host + " port:" + port);
+                Logger.Info("[CL.DeliveryServer] Socket.Iocp,starting", new { host, port });
 
                 if (!base.Start())
                 {
@@ -50,7 +50,7 @@ namespace Sers.CL.Socket.Iocp.Mode.ThreadWait
                 Send_task.Start();
 
 
-                Logger.Info("[CL.DeliveryServer] Socket.Iocp,started.");
+                Logger.Info("[CL.DeliveryServer] Socket.Iocp,started");
                 return true;
             }
             catch (Exception ex)

+ 2 - 2
dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/Timer/DeliveryClient.cs

@@ -35,7 +35,7 @@ namespace Sers.CL.Socket.Iocp.Mode.Timer
         {
             try
             {
-                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connecting... host:" + host + " port:" + port);
+                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connecting", new { host, port });
 
 
                 if (!base.Connect())
@@ -49,7 +49,7 @@ namespace Sers.CL.Socket.Iocp.Mode.Timer
                 Send_timer.Start();
 
 
-                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connected.");
+                Logger.Info("[CL.DeliveryClient] Socket.Iocp,connected");
                 return true;
             }
             catch (Exception ex)

+ 2 - 2
dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Mode/Timer/DeliveryServer.cs

@@ -37,7 +37,7 @@ namespace Sers.CL.Socket.Iocp.Mode.Timer
         {
             try
             {
-                Logger.Info("[CL.DeliveryServer] Socket.Iocp,starting... host:" + host + " port:" + port);
+                Logger.Info("[CL.DeliveryServer] Socket.Iocp,starting", new { host, port });
 
                 if (!base.Start())
                 {
@@ -49,7 +49,7 @@ namespace Sers.CL.Socket.Iocp.Mode.Timer
                 Send_timer.timerCallback = Send_Flush;
                 Send_timer.Start();
 
-                Logger.Info("[CL.DeliveryServer] Socket.Iocp,started.");
+                Logger.Info("[CL.DeliveryServer] Socket.Iocp,started");
                 return true;
             }
             catch (Exception ex)

+ 2 - 2
dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.ThreadWait/DeliveryClient.cs

@@ -35,7 +35,7 @@ namespace Sers.CL.Socket.ThreadWait
 
         public bool Connect()
         {
-            Logger.Info("[CL.DeliveryClient] Socket.ThreadWait,connecting... host:" + host + " port:" + port);
+            Logger.Info("[CL.DeliveryClient] Socket.ThreadWait,connecting", new { host, port });
             TcpClient client = null;
             try
             {
@@ -51,7 +51,7 @@ namespace Sers.CL.Socket.ThreadWait
             _conn.Init(client);
 
             _conn.StartBackThreadToReceiveMsg();
-            Logger.Info("[CL.DeliveryClient] Socket.ThreadWait,connected.");
+            Logger.Info("[CL.DeliveryClient] Socket.ThreadWait,connected");
             return true;
         }
 

+ 13 - 13
dotnet/Library/Sers/Sers.CL/Socket/Sers.CL.Socket.ThreadWait/DeliveryServer.cs

@@ -15,7 +15,7 @@ using Vit.Core.Util.Threading.Worker;
 
 namespace Sers.CL.Socket.ThreadWait
 {
-    public class DeliveryServer: IDeliveryServer
+    public class DeliveryServer : IDeliveryServer
     {
         public Sers.Core.Util.StreamSecurity.SecurityManager securityManager;
 
@@ -30,7 +30,7 @@ namespace Sers.CL.Socket.ThreadWait
 
         public Action<IDeliveryConnection> Conn_OnDisconnected { private get; set; }
         public Action<IDeliveryConnection> Conn_OnConnected { private get; set; }
-                           
+
 
 
 
@@ -60,9 +60,9 @@ namespace Sers.CL.Socket.ThreadWait
         {
             try
             {
-                if ( listener!=null ) return false;
+                if (listener != null) return false;
 
-                Logger.Info("[CL.DeliveryServer] Socket.ThreadWait,starting... host:" + host + " port:" + port);
+                Logger.Info("[CL.DeliveryServer] Socket.ThreadWait,starting", new { host, port });
 
                 // IPEndPoint类将网络标识为IP地址和端口号
                 IPEndPoint localEndPoint = new IPEndPoint(String.IsNullOrEmpty(host) ? IPAddress.Any : NetHelp.ParseToIPAddress(host), port);
@@ -91,14 +91,14 @@ namespace Sers.CL.Socket.ThreadWait
                 tcpListenerAccept_BackThread.Start();
                 #endregion               
 
-                Logger.Info("[CL.DeliveryServer] Socket.ThreadWait,started.");
+                Logger.Info("[CL.DeliveryServer] Socket.ThreadWait,started");
                 return true;
             }
             catch (Exception ex)
             {
                 Logger.Error(ex);
             }
-            return false;         
+            return false;
 
         }
 
@@ -112,16 +112,16 @@ namespace Sers.CL.Socket.ThreadWait
         /// </summary>
         public void Stop()
         {
-            if (listener==null) return;
+            if (listener == null) return;
 
             //(x.1) stop conn
-            ConnectedList.ToList().ForEach(Delivery_OnDisconnected);            
+            ConnectedList.ToList().ForEach(Delivery_OnDisconnected);
             connMap.Clear();
 
             //(x.2) close socket
             Task.Run(() =>
             {
-                Logger.Info("[CL.DeliveryServer] Socket.ThreadWait,stop...");       
+                Logger.Info("[CL.DeliveryServer] Socket.ThreadWait,stoping");
 
                 tcpListenerAccept_BackThread.Stop();
                 try
@@ -168,8 +168,8 @@ namespace Sers.CL.Socket.ThreadWait
             var conn = new DeliveryConnection();
             conn.securityManager = securityManager;
             conn.Init(client);
-        
-            conn.Conn_OnDisconnected = Delivery_OnDisconnected; 
+
+            conn.Conn_OnDisconnected = Delivery_OnDisconnected;
             connMap[conn.GetHashCode()] = conn;
             try
             {
@@ -186,8 +186,8 @@ namespace Sers.CL.Socket.ThreadWait
         }
 
         private void Delivery_OnDisconnected(IDeliveryConnection _conn)
-        { 
-            var conn = (DeliveryConnection)_conn; 
+        {
+            var conn = (DeliveryConnection)_conn;
 
             connMap.TryRemove(conn.GetHashCode(), out _);
 

+ 2 - 2
dotnet/Library/Sers/Sers.CL/WebSocket/Sers.CL.WebSocket/DeliveryClient.cs

@@ -31,7 +31,7 @@ namespace Sers.CL.WebSocket
         {
             try
             {
-                Logger.Info("[CL.DeliveryClient] WebSocket,connecting... host:" + host);
+                Logger.Info("[CL.DeliveryClient] WebSocket,connecting", new { host });
 
                 ClientWebSocket _webSocket = new ClientWebSocket();
                 _webSocket.ConnectAsync(new Uri(host), new CancellationToken()).GetAwaiter().GetResult();
@@ -39,7 +39,7 @@ namespace Sers.CL.WebSocket
 
                 _conn.StartBackThreadToReceiveMsg();
 
-                Logger.Info("[CL.DeliveryClient] WebSocket,connected.");
+                Logger.Info("[CL.DeliveryClient] WebSocket,connected");
                 return true;
             }
             catch (Exception ex)

+ 38 - 35
dotnet/Library/Sers/Sers.CL/WebSocket/Sers.CL.WebSocket/DeliveryServer.cs

@@ -6,41 +6,44 @@ using System;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Linq;
+
 using Fleck;
+
 using Sers.Core.CL.MessageDelivery;
+
 using Vit.Core.Module.Log;
 
 namespace Sers.CL.WebSocket
 {
-    public class DeliveryServer: IDeliveryServer
+    public class DeliveryServer : IDeliveryServer
     {
         public Sers.Core.Util.StreamSecurity.SecurityManager securityManager;
 
         /// <summary>
         /// 服务端地址(默认为 "ws://0.0.0.0:4503")
         /// </summary>
-        public string host="ws://0.0.0.0:4503";
+        public string host = "ws://0.0.0.0:4503";
 
 
         public Action<IDeliveryConnection> Conn_OnDisconnected { private get; set; }
         public Action<IDeliveryConnection> Conn_OnConnected { private get; set; }
- 
- 
-    
+
+
+
         public bool Start()
         {
             Stop();
 
             try
             {
-                Logger.Info("[CL.DeliveryServer] WebSocket,starting... host:" + host);
+                Logger.Info("[CL.DeliveryServer] WebSocket,starting", new { host });
 
                 connMap.Clear();
 
-                listenSocket =   new WebSocketServer(host);
+                listenSocket = new WebSocketServer(host);
 
                 //出错后进行重启
-                listenSocket.RestartAfterListenError = true;          
+                listenSocket.RestartAfterListenError = true;
 
                 #region Start
                 //开始监听
@@ -53,20 +56,20 @@ namespace Sers.CL.WebSocket
                     conn.securityManager = securityManager;
                     conn.Init(socket);
 
-                    socket.OnError = (ex) => 
+                    socket.OnError = (ex) =>
                     {
                         Logger.Error(ex);
                         conn.Close();
                     };
-                    socket.OnOpen = () =>   
+                    socket.OnOpen = () =>
                     {
                         Delivery_OnConnected(conn);
                     };
-                    socket.OnClose = () =>   
+                    socket.OnClose = () =>
                     {
-                        Delivery_OnDisconnected(conn);                         
+                        Delivery_OnDisconnected(conn);
                     };
-                    socket.OnBinary = bytes => 
+                    socket.OnBinary = bytes =>
                     {
                         conn.AppendData(new ArraySegment<byte>(bytes, 0, bytes.Length));
                     };
@@ -76,7 +79,7 @@ namespace Sers.CL.WebSocket
                 });
                 #endregion
 
-                Logger.Info("[CL.DeliveryServer] WebSocket,started.");
+                Logger.Info("[CL.DeliveryServer] WebSocket,started");
                 return true;
             }
             catch (Exception ex)
@@ -86,7 +89,7 @@ namespace Sers.CL.WebSocket
             return false;
         }
 
- 
+
         /// <summary>
         /// 停止服务
         /// </summary>
@@ -98,55 +101,55 @@ namespace Sers.CL.WebSocket
             listenSocket = null;
 
             //(x.1) stop conn
-            ConnectedList.ToList().ForEach(Delivery_OnDisconnected);        
-            connMap.Clear(); 
+            ConnectedList.ToList().ForEach(Delivery_OnDisconnected);
+            connMap.Clear();
 
             //(x.2) close Socket
             try
-            {               
-                listenSocket_.Dispose();    
+            {
+                listenSocket_.Dispose();
             }
             catch (Exception ex)
             {
                 Logger.Error(ex);
             }
-            
+
         }
-       
- 
 
 
-  
+
+
+
 
 
         public DeliveryServer()
-        {    
+        {
         }
 
-        
+
 
 
         WebSocketServer listenSocket;
- 
- 
+
+
 
         /// <summary>
         ///  connHashCode -> DeliveryConnection
         /// </summary>
         readonly ConcurrentDictionary<int, DeliveryServer_Connection> connMap = new ConcurrentDictionary<int, DeliveryServer_Connection>();
 
-      
 
 
-        public IEnumerable<IDeliveryConnection> ConnectedList => connMap.Values.Select(conn=>((IDeliveryConnection)conn));
 
-   
+        public IEnumerable<IDeliveryConnection> ConnectedList => connMap.Values.Select(conn => ((IDeliveryConnection)conn));
+
+
 
         #region Delivery_Event
 
         private DeliveryServer_Connection Delivery_OnConnected(DeliveryServer_Connection conn)
-        {          
-          
+        {
+
             conn.Conn_OnDisconnected = Delivery_OnDisconnected;
 
             connMap[conn.GetHashCode()] = conn;
@@ -162,10 +165,10 @@ namespace Sers.CL.WebSocket
         }
 
         private void Delivery_OnDisconnected(IDeliveryConnection _conn)
-        {         
-            var conn = (DeliveryServer_Connection)_conn;         
+        {
+            var conn = (DeliveryServer_Connection)_conn;
 
-            connMap.TryRemove(conn.GetHashCode(),out _);
+            connMap.TryRemove(conn.GetHashCode(), out _);
 
             try
             {

+ 2 - 2
dotnet/Library/Sers/Sers.CL/Zmq/FullDuplex/Sers.CL.Zmq.FullDuplex/DeliveryClient.cs

@@ -43,7 +43,7 @@ namespace Sers.CL.Zmq.FullDuplex
             try
             {
 
-                Logger.Info("[CL.DeliveryClient] Zmq.FullDuplex,connecting...  endpoint: \"" + endpoint + "\"");
+                Logger.Info("[CL.DeliveryClient] Zmq.FullDuplex,connecting", new { endpoint });
 
                 //(x.1)
                 _conn.OnSendFrameAsync = SendMessageAsync;
@@ -70,7 +70,7 @@ namespace Sers.CL.Zmq.FullDuplex
                 };
                 //stream.AfterStop = () => {  };
                 stream.Start(socketReader, socketWriter);
-                Logger.Info("[CL.DeliveryClient] Zmq.FullDuplex,connected.");
+                Logger.Info("[CL.DeliveryClient] Zmq.FullDuplex,connected");
                 return true;
             }
             catch (Exception ex)

+ 3 - 3
dotnet/Library/Sers/Sers.CL/Zmq/FullDuplex/Sers.CL.Zmq.FullDuplex/DeliveryServer.cs

@@ -43,7 +43,7 @@ namespace Sers.CL.Zmq.FullDuplex
         {
             try
             {
-                Logger.Info("[CL.DeliveryServer] Zmq.FullDuplex,starting...   endpoint: \"" + endpoint + "\"");
+                Logger.Info("[CL.DeliveryServer] Zmq.FullDuplex,starting", new { endpoint });
 
                 //(x.1) create zmq conn
                 socketRouter = new ZSocket(ZSocketType.ROUTER);
@@ -60,7 +60,7 @@ namespace Sers.CL.Zmq.FullDuplex
                 stream.OnReceiveMessage = OnReceiveMessage;
                 stream.BeforeStop = () => 
                 {
-                    Logger.Info("[CL.DeliveryServer] Zmq.FullDuplex,stop...");
+                    Logger.Info("[CL.DeliveryServer] Zmq.FullDuplex,stoping");
 
                     //stop conn
                     ConnectedList.ToList().ForEach(conn => conn.Close());
@@ -71,7 +71,7 @@ namespace Sers.CL.Zmq.FullDuplex
                 };
                 stream.AfterStop = () => {            Logger.Info("[CL.DeliveryServer] Zmq.FullDuplex,stoped");    };
                 stream.Start(socketRouter, socketWriter);
-                Logger.Info("[CL.DeliveryServer] Zmq.FullDuplex,started.");
+                Logger.Info("[CL.DeliveryServer] Zmq.FullDuplex,started");
                 return true;
             }
             catch (Exception ex)

+ 2 - 2
dotnet/Library/Sers/Sers.CL/Zmq/ThreadWait/Sers.CL.ClrZmq.ThreadWait/DeliveryClient.cs

@@ -42,7 +42,7 @@ namespace Sers.CL.ClrZmq.ThreadWait
             try
             {
 
-                Logger.Info("[CL.DeliveryClient] Zmq.ThreadWait,connecting...  endpoint: \"" + endpoint + "\"");
+                Logger.Info("[CL.DeliveryClient] Zmq.ThreadWait,connecting", new { endpoint });
 
                 //(x.1)
                 _conn.OnSendFrameAsync = Zmq_SendMessageAsync;
@@ -56,7 +56,7 @@ namespace Sers.CL.ClrZmq.ThreadWait
                 //(x.3) init poller
                 poller.OnReceiveMessage = Zmq_OnReceiveMessage;
                 poller.Start(socket);
-                Logger.Info("[CL.DeliveryClient] Zmq.ThreadWait,connected.");
+                Logger.Info("[CL.DeliveryClient] Zmq.ThreadWait,connected");
                 return true;
             }
             catch (Exception ex)

+ 3 - 3
dotnet/Library/Sers/Sers.CL/Zmq/ThreadWait/Sers.CL.ClrZmq.ThreadWait/DeliveryServer.cs

@@ -44,7 +44,7 @@ namespace Sers.CL.ClrZmq.ThreadWait
         {
             try
             {
-                Logger.Info("[CL.DeliveryServer] Zmq.ThreadWait,starting...   endpoint: \"" + endpoint + "\"");
+                Logger.Info("[CL.DeliveryServer] Zmq.ThreadWait,starting", new { endpoint });
 
                 //(x.1) create zmq conn
                 var socket = new ZSocket(ZSocketType.ROUTER);
@@ -54,7 +54,7 @@ namespace Sers.CL.ClrZmq.ThreadWait
                 poller.OnReceiveMessage = Zmq_OnReceiveMessage;
                 poller.Start(socket);
 
-                Logger.Info("[CL.DeliveryServer] Zmq.ThreadWait,started.");
+                Logger.Info("[CL.DeliveryServer] Zmq.ThreadWait,started");
                 return true;
             }
             catch (Exception ex)
@@ -138,7 +138,7 @@ namespace Sers.CL.ClrZmq.ThreadWait
         /// </summary>
         public void Stop()
         {
-            Logger.Info("[ServerMq] Zmq.ThreadWait,stop...");
+            Logger.Info("[ServerMq] Zmq.ThreadWait,stoping");
 
             //(x.1) stop conn
             ConnectedList.ToList().ForEach(Delivery_OnDisconnected);

+ 3 - 3
dotnet/Library/Sers/Sers.Core/Sers.Core/CL/MessageOrganize/DefaultOrganize/OrganizeClient.cs

@@ -142,7 +142,7 @@ namespace Sers.Core.CL.MessageOrganize.DefaultOrganize
             var requestData = new ByteData(secretKey.SerializeToBytes());
 
             //发送身份验证
-            Logger.Info("[CL.OrganizeClient] Authentication - sending SecretKey...");
+            Logger.Info("[CL.OrganizeClient] Authentication - sending SecretKey");
 
             bool success = false;
             try
@@ -150,7 +150,7 @@ namespace Sers.Core.CL.MessageOrganize.DefaultOrganize
                 if (conn.SendRequest(requestData, out var replyData, requestAdaptor.requestTimeoutMs) && replyData.ByteDataToString() == "true")
                 {
                     success = true;
-                    Logger.Info("[CL.OrganizeClient] Authentication - succeed.");
+                    Logger.Info("[CL.OrganizeClient] Authentication - succeed");
                     return true;
                 }
                 return false;
@@ -159,7 +159,7 @@ namespace Sers.Core.CL.MessageOrganize.DefaultOrganize
             {
                 if (!success)
                 {
-                    Logger.Info("[CL.OrganizeClient] Authentication - failed.");
+                    Logger.Info("[CL.OrganizeClient] Authentication - failed");
                 }
             }
             

+ 1 - 1
dotnet/Library/Sers/Sers.Core/Sers.Core/CL/MessageOrganize/DefaultOrganize/OrganizeServer.cs

@@ -192,7 +192,7 @@ namespace Sers.Core.CL.MessageOrganize.DefaultOrganize
                 {
                     //验证不通过
                     deliveryConn.state = DeliveryConnState.waitForClose;
-                    Logger.Info("[CL.OrganizeServer] Authentication - failed!(" + reqSecretKey + ")");
+                    Logger.Info("[CL.OrganizeServer] Authentication - failed", new { reqSecretKey });
                     replyData = "false".SerializeToArraySegmentByte();
                     callback?.Invoke(sender, new Vit.Core.Util.Pipelines.ByteData(replyData));
                 }

+ 1 - 1
dotnet/Library/Sers/Sers.Core/Sers.Core/CL/MessageOrganize/DefaultOrganize/RequestAdaptor.cs

@@ -549,7 +549,7 @@ namespace Sers.Core.CL.MessageOrganize.DefaultOrganize
             {
                 if (info.IsDisconnected(heartBeatRetryCount))
                 {
-                    Logger.Info("[CL.RequestAdaptor]HeartBeat,conn disconnected. connTag:" + conn.connTag);
+                    Logger.Info("[CL.RequestAdaptor]HeartBeat,conn disconnected", new { connTag = conn.connTag });
                     conn.Close();                    
                     return;
                 }

+ 1 - 1
dotnet/Library/Sers/Sers.Core/Sers.Core/Module/Api/LocalApi/LocalApiService/LocalApiService.cs

@@ -178,7 +178,7 @@ namespace Sers.Core.Module.Api.LocalApi
                 if (threadCount > 0)
                 {
                     workThread.Start();
-                    Logger.Info("[LocalApiService] Started,threadCount:" + threadCount);
+                    Logger.Info("[LocalApiService] Started", new { threadCount });
 
                 }
                 return true;

+ 1 - 1
dotnet/Library/Sers/Sers.Core/Sers.Core/Module/PubSub/Controller/SubscriberLoader.cs

@@ -13,7 +13,7 @@ namespace Sers.Core.Module.PubSub.Controller
             var types = assembly.GetTypes().Where(type => typeof(ISubscriberController).IsAssignableFrom(type) && !type.IsAbstract && type.IsPublic);
             if (types == null || types.Count() == 0) return;
 
-            Logger.Info("[SubscriberLoader] LoadSubscriber,assembly:[" + assembly.FullName + "]");
+            Logger.Info("[SubscriberLoader]LoadSubscriber", new { assembly = assembly.FullName });
 
             foreach (var type in types)
             {

+ 1 - 1
dotnet/Library/Sers/Sers.Core/Sers.Core/SersLoader/ApiLoader.cs

@@ -87,7 +87,7 @@ namespace Sers.SersLoader
 
 
             #region (x.3)LoadApi
-            Logger.Info("[ApiLoader] LoadApi,assembly:[" + config.assembly.FullName + "]");
+            Logger.Info("[ApiLoader] LoadApi", new { assembly = config.assembly.FullName });
 
             //List<IApiNode> apiNodes = new List<IApiNode>();
 

+ 2 - 2
dotnet/Library/Sers/Sers.Core/Sers.Core/Util/StreamSecurity/SecurityManager.cs

@@ -16,7 +16,7 @@ namespace Sers.Core.Util.StreamSecurity
             if (configs == null || configs.Count == 0) return null;
 
 
-            Logger.Info("[CL.SecurityManager] init... ");
+            Logger.Info("[CL.SecurityManager] initing");
 
             //(x.1) Build security
             var securitys =configs.Select(config =>
@@ -44,7 +44,7 @@ namespace Sers.Core.Util.StreamSecurity
             }).ToArray();
 
 
-            Logger.Info("[CL.SecurityManager] inited.");
+            Logger.Info("[CL.SecurityManager] inited");
             return new SecurityManager { securitys= securitys };
         }
 

+ 2 - 2
dotnet/Library/Sers/Sers.Gateway/Sers.Gateway/GatewayHelp.cs

@@ -78,10 +78,10 @@ namespace Sers.Gateway
 
 
             #region (x.x.5)启动
-            Logger.Info("[WebHost]will listening on: " + string.Join(",", arg.urls));
+            Logger.Info("[WebHost]listening", arg.urls);
 
             if (arg.staticFiles?.rootPath != null)
-                Logger.Info("[WebHost]wwwroot : " + arg.staticFiles.rootPath);
+                Logger.Info("[WebHost]wwwroot path",arg.staticFiles.rootPath);
 
             Vit.WebHost.Host.Run(arg);
             #endregion

+ 1 - 1
dotnet/Library/Sers/Sers.Gateway/Sers.Gateway/RateLimit/RateLimitMng.cs

@@ -95,7 +95,7 @@ namespace Sers.Gateway.RateLimit
 
             if (null == limitItem) return false;
 
-            Logger.Info("[服务限流]加载成功。config:"+ rateLimit);
+            Logger.Info("[服务限流]加载成功", rateLimit);
 
             limit_Map[limitItem.rateLimitKey] = limitItem;
 

+ 3 - 3
dotnet/Library/Sers/Sers.ServiceStation/Sers.ServiceStation/ServiceStation.cs

@@ -307,7 +307,7 @@ namespace Sers.ServiceStation
 
                         if (!ret.success)
                         {
-                            Logger.Info("[ServiceStation] regist - failed. reply: " + ret.Serialize());
+                            Logger.Info("[ServiceStation] regist - failed", ret);
                             return false;
                         }
                     }
@@ -334,7 +334,7 @@ namespace Sers.ServiceStation
 
                                 if (!ret.success)
                                 {
-                                    Logger.Info("[ServiceStation] updateStationInfo - failed. reply: " + ret.Serialize());                                  
+                                    Logger.Info("[ServiceStation] updateStationInfo - failed", ret);
                                 }
                             }
                         }
@@ -367,7 +367,7 @@ namespace Sers.ServiceStation
             SersApplication.ResistConsoleCancelKey(Stop);
             SersApplication.OnStart();
 
-            Logger.Info("[ServiceStation] started - stationName:" + SersApplication.serviceStationInfo.serviceStationName);
+            Logger.Info("[ServiceStation] started",SersApplication.serviceStationInfo.serviceStationName);
 
             //(x.9) appEvent AfterStart
             appEventList?.ForEach(ev => ev.AfterStart());

+ 14 - 4
dotnet/Library/Vit/Vit.Core/Test/Vit.Core.MsTest/appsettings.json

@@ -9,20 +9,30 @@
       /* print the log to console. default:true  */
       "PrintToConsole": true,
 
+
+      /* print the error happened in log module to console. default:false  */
+      "PrintLogErrorToConsole": false,
+
       /* [optional]send log to splunk */
       "Splunk": {
         "url": "http://192.168.20.20:8088/services/collector",
         "authToken": "xxxxx",
 
         "message": {
-          "index": "prod",
+          "index": "dev",
           "//host": "192.168.20.20:8088",
           "//source": "http:mc",
           "//sourcetype": "httpevent",
 
-          "//event": {
-            "namespace": "mc.sers.cloud",
-            "app": "mc"
+          // [optional]
+          "event": {
+            //custome object
+            "app": {
+              "namespace": "mc.sers.cloud",
+              "appName": "mc",
+              "moduleName": "sers"
+              //,"...": {}
+            }
           }
         }
       }

+ 2 - 18
dotnet/Library/Vit/Vit.Core/Vit.Core/Module/Log/LogCollector/ConsoleCollector.cs

@@ -5,28 +5,12 @@ using Vit.Extensions;
 namespace Vit.Core.Module.Log.LogCollector
 {
     public class ConsoleCollector : ILogCollector
-    {
-
+    { 
         public static Action<LogMessage> OnLog = (msg) =>
         {
-            #region build log string
-            string logString = msg.message;
-
-            if (msg.metadata != null)
-            {
-                foreach (var obj in msg.metadata)
-                {
-                    logString += Environment.NewLine + obj.Serialize();
-                }
-            }
-            #endregion
-
-            Console.WriteLine("[" + msg.level + "]" + DateTime.Now.ToString("[HH:mm:ss.ffff]") + logString);
+            Console.WriteLine(TxtCollector.BuildMessageData(msg, prefix: "[" + msg.level + "]"));
         };
 
-
-
-
         [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
         public void Write(LogMessage msg)
         {

+ 13 - 14
dotnet/Library/Vit/Vit.Core/Vit.Core/Module/Log/LogCollector/SplunkCollector.cs

@@ -43,8 +43,6 @@ namespace Vit.Core.Module.Log.LogCollector
                     level = msg.level.ToString(),
                     message = msg.message,
                     metadata = msg.metadata,
-
-                    @namespace = message?.@event?.@namespace,
                     app = message?.@event?.app
                 }
             };
@@ -54,10 +52,10 @@ namespace Vit.Core.Module.Log.LogCollector
 
             // TODO:    retry when fail. 
             //          batch:  batchIntervalInSeconds, batchSizeLimit, queueLimit
-            httpClient.SendAsync(request);
+            //httpClient.SendAsync(request);
 
             //var strMsg = msgBody.Serialize();
-            //var response = httpClient.SendAsync(request).Result;
+            var response = httpClient.SendAsync(request).Result;
 
         }
 
@@ -79,7 +77,7 @@ namespace Vit.Core.Module.Log.LogCollector
             [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
             public string sourcetype;
 
-            [JsonProperty("event")]
+            [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
             public Event @event;
 
             public class Event
@@ -94,27 +92,28 @@ namespace Vit.Core.Module.Log.LogCollector
                 [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
                 public object metadata;
 
-
                 [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
-                public string @namespace;
-
-                [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
-                public string app;
+                public object app;
             }
 
             /*
              {
-                "time": 1426279439,  
+                "time": 1426279439.123,  
                 "host": "localhost",
                 "source": "random-data-generator",
                 "sourcetype": "my_sample_data",
-                "index": "index_prod",
+                "index": "dev",
                 "event": { 
                     "level": "info",
                     "message": "Something happened",
                     "metadata": [],
-                    "namespace": "mc.sers.cloud",
-                    "app":"mc"
+                     //custome object
+                    "app": {
+                      "namespace": "mc.sers.cloud",
+                      "appName": "mc",
+                      "moduleName": "sers"
+                      //,"...": {}
+                    }
                 }
              }
              */

+ 22 - 13
dotnet/Library/Vit/Vit.Core/Vit.Core/Module/Log/LogCollector/TxtCollector.cs

@@ -1,6 +1,7 @@
 using System;
 using System.IO;
 using System.Linq;
+using System.Text;
 
 using Vit.Extensions;
 
@@ -11,19 +12,7 @@ namespace Vit.Core.Module.Log.LogCollector
         [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
         public void Write(LogMessage msg)
         {
-            #region build log string
-            string logString = DateTime.Now.ToString("[HH:mm:ss.ffff]") + msg.message + NewLine;
-
-            if (msg.metadata != null)
-            {
-                foreach (var obj in msg.metadata)
-                {
-                    logString += obj.Serialize() + NewLine;
-                }
-            }
-            #endregion
-
-            Write(msg.level, logString);
+            Write(msg.level, BuildMessageData(msg, NewLine));
         }
 
 
@@ -32,6 +21,26 @@ namespace Vit.Core.Module.Log.LogCollector
 
         public static string NewLine = Environment.NewLine;
 
+        public static string metadataSeparator = "    ";
+        public static string BuildMessageData(LogMessage msg, string prefix = null)
+        {
+            if (msg.metadata == null)
+            {
+                return prefix + DateTime.Now.ToString("[HH:mm:ss.ffff]") + msg.message;
+            }
+
+
+            StringBuilder builder = new StringBuilder(prefix);
+            builder.Append(DateTime.Now.ToString("[HH:mm:ss.ffff]")).Append(msg.message);
+            foreach (var obj in msg.metadata)
+            {
+                builder.Append(metadataSeparator).Append(obj.Serialize());
+            }
+            return builder.ToString();
+        }
+
+
+
 
         [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
         public void Write(Level level, string message)

+ 9 - 1
dotnet/Library/Vit/Vit.Core/Vit.Core/Module/Log/LogMng.cs

@@ -1,6 +1,7 @@
 using System;
 using Vit.Core.Module.Log.LogCollector;
 using System.Collections.Generic;
+using Vit.Core.Util.ConfigurationManager;
 
 namespace Vit.Core.Module.Log
 {
@@ -23,6 +24,9 @@ namespace Vit.Core.Module.Log
 
 
         #region Log
+
+        static bool? PrintLogErrorToConsole = ConfigurationManager.Instance.GetByPath<bool?>("Vit.Logger.PrintLogErrorToConsole");
+
         [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
         public void Log(LogMessage msg)
         {
@@ -31,7 +35,11 @@ namespace Vit.Core.Module.Log
                 foreach (var collector in collectors)
                     collector.Write(msg);
             }
-            catch { }
+            catch(Exception e)
+            {
+                if (PrintLogErrorToConsole == true)
+                    Console.WriteLine("[Vit.Core.Module.Log] error: " + e.Message);
+            }
         }
         #endregion
 

+ 1 - 0
dotnet/Library/Vit/Vit.Core/Vit.Core/Module/Log/Logger.cs

@@ -4,6 +4,7 @@ using Vit.Core.Util.ComponentModel.SsError;
 using Vit.Core.Util.ConfigurationManager;
 using System.Linq;
 using Vit.Core.Module.Log.LogCollector;
+using Vit.Extensions;
 
 namespace Vit.Core.Module.Log
 {

+ 1 - 1
dotnet/ServiceCenter/Sers.ServiceCenter/Apm/Sers.Gover.Apm.Zipkin/AppEvent.cs

@@ -232,7 +232,7 @@ namespace Sers.Gover.Apm.Zipkin
         {           
             config = arg.Deserialize<Config>();
             if (string.IsNullOrEmpty(config.rpcName)) config.rpcName = "ServiceCenter";
-            Logger.Info("[zipkin]初始化中... config: " + config?.Serialize());
+            Logger.Info("[zipkin]初始化中",config);
         }
 
 

+ 2 - 2
dotnet/ServiceCenter/Sers.ServiceCenter/Sers.Gover/Base/ApiStationMng.cs

@@ -206,7 +206,7 @@ namespace Sers.Gover.Base
             {
                 if (Config_ApiRegistEvent_Print)
                 {
-                    Logger.Info("[ApiCenterService]Add ApiNode,serviceKey:" + apiNode.apiDesc.ServiceKeyGet());
+                    Logger.Info("[ApiCenterService]Add ApiNode", apiNode.apiDesc.ServiceKeyGet());
                 }
                 
 
@@ -231,7 +231,7 @@ namespace Sers.Gover.Base
 
             if (Config_ApiRegistEvent_Print)
             {
-                Logger.Info("[ApiCenterService]Remove ApiNode,serviceKey:" + apiNode.apiDesc.ServiceKeyGet());
+                Logger.Info("[ApiCenterService]Remove ApiNode", apiNode.apiDesc.ServiceKeyGet());
             }
 
             var apiStation = ApiStation_Get(route);

+ 8 - 8
dotnet/ServiceCenter/Sers.ServiceCenter/Sers.Gover/Base/GoverApiCenterService.cs

@@ -272,7 +272,7 @@ namespace Sers.Gover.Base
 
         public override void ServiceStation_Regist(ServiceStation serviceStation)
         {
-            Logger.Info("[ApiCenterService]Regist serviceStation,stationName:" + serviceStation?.serviceStationInfo?.serviceStationName);
+            Logger.Info("[ApiCenterService]Regist serviceStation", new { stationName = serviceStation?.serviceStationInfo?.serviceStationName });
             serviceStationMng.ServiceStation_Add(serviceStation);
         }
 
@@ -282,7 +282,7 @@ namespace Sers.Gover.Base
         /// <param name="serviceStation"></param>
         public override bool ServiceStation_UpdateStationInfo(ServiceStation serviceStation)
         {
-            Logger.Info("[ApiCenterService]ServiceStation_UpdateStationInfo,stationName:" + serviceStation?.serviceStationInfo?.serviceStationName);
+            Logger.Info("[ApiCenterService]ServiceStation_UpdateStationInfo", new { stationName = serviceStation?.serviceStationInfo?.serviceStationName });
             return serviceStationMng.ServiceStation_UpdateStationInfo(serviceStation);
         }
 
@@ -293,7 +293,7 @@ namespace Sers.Gover.Base
             var serviceStation = serviceStationMng.ServiceStation_Remove(connKey);
             if (serviceStation != null)
             {
-                Logger.Info("[ApiCenterService]Remove serviceStation,stationName:" + serviceStation?.serviceStationInfo?.serviceStationName);
+                Logger.Info("[ApiCenterService]Remove serviceStation", new { stationName = serviceStation?.serviceStationInfo?.serviceStationName });
             }
         }
 
@@ -303,7 +303,7 @@ namespace Sers.Gover.Base
             var serviceStation = serviceStationMng.ServiceStation_Pause(connKey);
             if (serviceStation != null)
             {
-                Logger.Info("[ApiCenterService]Pause serviceStation,stationName:" + serviceStation?.serviceStationInfo?.serviceStationName);
+                Logger.Info("[ApiCenterService]Pause serviceStation", new { stationName = serviceStation?.serviceStationInfo?.serviceStationName });
             } 
             return serviceStation != null;
         }
@@ -313,7 +313,7 @@ namespace Sers.Gover.Base
             var serviceStation = serviceStationMng.ServiceStation_Start(connKey);
             if (serviceStation != null)
             {
-                Logger.Info("[ApiCenterService]Start serviceStation,stationName:" + serviceStation?.serviceStationInfo?.serviceStationName);
+                Logger.Info("[ApiCenterService]Start serviceStation", new { stationName = serviceStation?.serviceStationInfo?.serviceStationName });
             }
             return serviceStation != null; 
         }
@@ -323,7 +323,7 @@ namespace Sers.Gover.Base
             var serviceStation = serviceStationMng.ServiceStation_Remove(connKey);
             if (serviceStation != null)
             {
-                Logger.Info("[ApiCenterService]Stop serviceStation,stationName:" + serviceStation?.serviceStationInfo?.serviceStationName);
+                Logger.Info("[ApiCenterService]Stop serviceStation", new { stationName = serviceStation?.serviceStationInfo?.serviceStationName });
                 serviceStation.connection.Close();
             }
             return serviceStation != null;
@@ -342,13 +342,13 @@ namespace Sers.Gover.Base
 
         public bool ApiStation_Pause(string stationName)
         {
-            Logger.Info("[ApiCenterService]Pause ApiStation,stationName:" + stationName);
+            Logger.Info("[ApiCenterService]Pause ApiStation", new { stationName });
             return apiStationMng.ApiStation_Pause(stationName);
         }
 
         public bool ApiStation_Start(string stationName)
         {
-            Logger.Info("[ApiCenterService]Start ApiStation,stationName:" + stationName);
+            Logger.Info("[ApiCenterService]Start ApiStation", new { stationName });
             return apiStationMng.ApiStation_Start(stationName);
         }
         #endregion

+ 2 - 2
dotnet/ServiceCenter/Sers.ServiceCenter/Sers.ServiceCenter/ServiceCenter.cs

@@ -235,12 +235,12 @@ namespace Sers.ServiceCenter
 
             communicationManage.Conn_OnConnected = (IOrganizeConnection conn) =>
               {
-                  Logger.Info("[CL] OnConnected,connTag:" + conn.connTag);
+                  Logger.Info("[CL] OnConnected",new { conn.connTag });
               };
 
             communicationManage.Conn_OnDisconnected = (IOrganizeConnection conn) =>
             {
-                Logger.Info("[CL] OnDisconnected,connTag:" + conn.connTag);
+                Logger.Info("[CL] OnDisconnected,connTag", new { conn.connTag });
 
                 MessageCenterService.Instance.Conn_OnDisconnected(conn);
 

+ 1 - 1
dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/Logical/Worker/Worker_ApiClient.cs

@@ -63,7 +63,7 @@ namespace App.Robot.Station.Logical.Worker
                 else
                 {
                     if(taskItem.config.logError)
-                    Logger.Info("失败:ret:" + ret.Serialize());
+                    Logger.Info("失败",ret);
                 }
             }
             catch (Exception ex)

+ 1 - 1
dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/Logical/Worker/Worker_ApiClientAsync.cs

@@ -65,7 +65,7 @@ namespace App.Robot.Station.Logical.Worker
             else
             {
                 if (logError)
-                    Logger.Info("失败:ret:" + ret.Serialize());
+                    Logger.Info("失败", ret);
             }
 
             taskItem.StepUp(success);

+ 1 - 1
dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/Logical/Worker/Worker_HttpClient.cs

@@ -42,7 +42,7 @@ namespace App.Robot.Station.Logical.Worker
                 else
                 {
                     if (taskItem.config.logError)
-                        Logger.Info("失败:ret:" + ret.Serialize());
+                        Logger.Info("失败", ret);
                 }
             }
             catch (Exception ex)

+ 1 - 1
dotnet/ServiceStation/Demo/StressTest/App.Robot.Station/Logical/Worker/Worker_HttpUtil.cs

@@ -42,7 +42,7 @@ namespace App.Robot.Station.Logical.Worker
                 else
                 {
                     if (taskItem.config.logError)
-                        Logger.Info("失败:ret:" + ret.Serialize());
+                        Logger.Info("失败", ret);
                 }
             }
             catch (Exception ex)