From 25a75e44534e79e72f252218b877a8a7fff9e644 Mon Sep 17 00:00:00 2001 From: Shargon Date: Thu, 30 Apr 2020 20:14:50 +0200 Subject: [PATCH 1/8] Unify akka logs --- src/neo/Consensus/ConsensusService.cs | 2 +- src/neo/LogLevel.cs | 10 ++++----- src/neo/NeoSystem.cs | 2 +- src/neo/Plugins/Plugin.cs | 4 ++-- src/neo/Utility.cs | 29 +++++++++++++++++++++++++++ 5 files changed, 38 insertions(+), 9 deletions(-) diff --git a/src/neo/Consensus/ConsensusService.cs b/src/neo/Consensus/ConsensusService.cs index 788719ae14..7ae42290d9 100644 --- a/src/neo/Consensus/ConsensusService.cs +++ b/src/neo/Consensus/ConsensusService.cs @@ -189,7 +189,7 @@ private void InitializeConsensus(byte viewNumber) private void Log(string message, LogLevel level = LogLevel.Info) { - Utility.Log(nameof(ConsensusService), level, message); + Utility.Log(level, message); } private void OnChangeViewReceived(ConsensusPayload payload, ChangeView message) diff --git a/src/neo/LogLevel.cs b/src/neo/LogLevel.cs index 1aeef70a10..1b8857c1ca 100644 --- a/src/neo/LogLevel.cs +++ b/src/neo/LogLevel.cs @@ -2,10 +2,10 @@ namespace Neo { public enum LogLevel : byte { - Fatal, - Error, - Warning, - Info, - Debug + Debug = 0, + Info = 1, + Warning = 2, + Error = 3, + Fatal = 4 } } diff --git a/src/neo/NeoSystem.cs b/src/neo/NeoSystem.cs index 301df2c5d6..aa18723e01 100644 --- a/src/neo/NeoSystem.cs +++ b/src/neo/NeoSystem.cs @@ -12,7 +12,7 @@ namespace Neo public class NeoSystem : IDisposable { public ActorSystem ActorSystem { get; } = ActorSystem.Create(nameof(NeoSystem), - $"akka {{ log-dead-letters = off }}" + + $"akka {{ log-dead-letters = off , loglevel = warning, loggers = [ \"{typeof(Utility.Logger).AssemblyQualifiedName}\" ] }}" + $"blockchain-mailbox {{ mailbox-type: \"{typeof(BlockchainMailbox).AssemblyQualifiedName}\" }}" + $"task-manager-mailbox {{ mailbox-type: \"{typeof(TaskManagerMailbox).AssemblyQualifiedName}\" }}" + $"remote-node-mailbox {{ mailbox-type: \"{typeof(RemoteNodeMailbox).AssemblyQualifiedName}\" }}" + diff --git a/src/neo/Plugins/Plugin.cs b/src/neo/Plugins/Plugin.cs index b8d775b95c..c819b14135 100644 --- a/src/neo/Plugins/Plugin.cs +++ b/src/neo/Plugins/Plugin.cs @@ -109,7 +109,7 @@ private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEven } catch (Exception ex) { - Utility.Log(nameof(Plugin), LogLevel.Error, $"Failed to resolve assembly or its dependency: {ex.Message}"); + Utility.Log(an.Name, LogLevel.Error, $"Failed to resolve assembly or its dependency: {ex.Message}"); return null; } } @@ -137,7 +137,7 @@ private static void LoadPlugin(Assembly assembly) } catch (Exception ex) { - Utility.Log(nameof(Plugin), LogLevel.Error, $"Failed to initialize plugin: {ex.Message}"); + Utility.Log(type.Name, LogLevel.Error, $"Failed to initialize plugin: {ex.Message}"); } } } diff --git a/src/neo/Utility.cs b/src/neo/Utility.cs index 984422512e..e538cb830d 100644 --- a/src/neo/Utility.cs +++ b/src/neo/Utility.cs @@ -1,3 +1,5 @@ +using Akka.Actor; +using Akka.Event; using Microsoft.Extensions.Configuration; using Neo.Plugins; using System; @@ -6,6 +8,28 @@ namespace Neo { public static class Utility { + internal class Logger : ReceiveActor + { + public Logger() + { + Receive(e => OnLog(LogLevel.Debug, e.ToString())); + Receive(e => OnLog(LogLevel.Info, e.ToString())); + Receive(e => OnLog(LogLevel.Warning, e.ToString())); + Receive(e => OnLog(LogLevel.Error, e.ToString())); + Receive(_ => Init(Sender)); + } + + private void Init(IActorRef sender) + { + sender.Tell(new LoggerInitialized()); + } + + private void OnLog(LogLevel level, string message) + { + Log(level, message); + } + } + /// /// Load configuration with different Environment Variable /// @@ -25,5 +49,10 @@ public static void Log(string source, LogLevel level, string message) foreach (ILogPlugin plugin in Plugin.Loggers) plugin.Log(source, level, message); } + + public static void Log(LogLevel level, string message) + { + Log(typeof(T).Name, level, message); + } } } From 69e7ab938daa4c41f561b40092c881c4b4590daf Mon Sep 17 00:00:00 2001 From: Shargon Date: Thu, 30 Apr 2020 20:17:48 +0200 Subject: [PATCH 2/8] Add event --- src/neo/Utility.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/neo/Utility.cs b/src/neo/Utility.cs index e538cb830d..dc31c0989d 100644 --- a/src/neo/Utility.cs +++ b/src/neo/Utility.cs @@ -30,6 +30,10 @@ private void OnLog(LogLevel level, string message) } } + public delegate void delOnLog(string source, LogLevel level, string message); + + public static event delOnLog OnLog; + /// /// Load configuration with different Environment Variable /// @@ -46,6 +50,8 @@ public static IConfigurationRoot LoadConfig(string config) public static void Log(string source, LogLevel level, string message) { + OnLog?.Invoke(source, level, message); + foreach (ILogPlugin plugin in Plugin.Loggers) plugin.Log(source, level, message); } From 6c69a13ffd2401fc52ad326a2041d7a06b7ef017 Mon Sep 17 00:00:00 2001 From: Shargon Date: Thu, 30 Apr 2020 20:23:10 +0200 Subject: [PATCH 3/8] dotnet format --- src/neo/Utility.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/neo/Utility.cs b/src/neo/Utility.cs index dc31c0989d..e51a637678 100644 --- a/src/neo/Utility.cs +++ b/src/neo/Utility.cs @@ -1,4 +1,4 @@ -using Akka.Actor; +using Akka.Actor; using Akka.Event; using Microsoft.Extensions.Configuration; using Neo.Plugins; From 8ab49731979a0d5a51d590773bb4b6882a7ca34a Mon Sep 17 00:00:00 2001 From: Shargon Date: Fri, 1 May 2020 08:46:12 +0200 Subject: [PATCH 4/8] Remove event --- src/neo/Utility.cs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/neo/Utility.cs b/src/neo/Utility.cs index e51a637678..50b6e59a79 100644 --- a/src/neo/Utility.cs +++ b/src/neo/Utility.cs @@ -30,10 +30,6 @@ private void OnLog(LogLevel level, string message) } } - public delegate void delOnLog(string source, LogLevel level, string message); - - public static event delOnLog OnLog; - /// /// Load configuration with different Environment Variable /// @@ -50,8 +46,6 @@ public static IConfigurationRoot LoadConfig(string config) public static void Log(string source, LogLevel level, string message) { - OnLog?.Invoke(source, level, message); - foreach (ILogPlugin plugin in Plugin.Loggers) plugin.Log(source, level, message); } From ae805bdf23cec8a2fb5da55f59b4a6c342f5e378 Mon Sep 17 00:00:00 2001 From: Shargon Date: Fri, 1 May 2020 13:07:57 +0200 Subject: [PATCH 5/8] Remove overload --- src/neo/Consensus/ConsensusService.cs | 2 +- src/neo/Utility.cs | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/neo/Consensus/ConsensusService.cs b/src/neo/Consensus/ConsensusService.cs index 7ae42290d9..788719ae14 100644 --- a/src/neo/Consensus/ConsensusService.cs +++ b/src/neo/Consensus/ConsensusService.cs @@ -189,7 +189,7 @@ private void InitializeConsensus(byte viewNumber) private void Log(string message, LogLevel level = LogLevel.Info) { - Utility.Log(level, message); + Utility.Log(nameof(ConsensusService), level, message); } private void OnChangeViewReceived(ConsensusPayload payload, ChangeView message) diff --git a/src/neo/Utility.cs b/src/neo/Utility.cs index 50b6e59a79..e6c94b7c6d 100644 --- a/src/neo/Utility.cs +++ b/src/neo/Utility.cs @@ -49,10 +49,5 @@ public static void Log(string source, LogLevel level, string message) foreach (ILogPlugin plugin in Plugin.Loggers) plugin.Log(source, level, message); } - - public static void Log(LogLevel level, string message) - { - Log(typeof(T).Name, level, message); - } } } From 6072f242dfa9d9d35abc16294471c7cba8f6e09f Mon Sep 17 00:00:00 2001 From: Shargon Date: Fri, 1 May 2020 14:36:15 +0200 Subject: [PATCH 6/8] Clean changes --- src/neo/Plugins/Plugin.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/neo/Plugins/Plugin.cs b/src/neo/Plugins/Plugin.cs index c819b14135..b8d775b95c 100644 --- a/src/neo/Plugins/Plugin.cs +++ b/src/neo/Plugins/Plugin.cs @@ -109,7 +109,7 @@ private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEven } catch (Exception ex) { - Utility.Log(an.Name, LogLevel.Error, $"Failed to resolve assembly or its dependency: {ex.Message}"); + Utility.Log(nameof(Plugin), LogLevel.Error, $"Failed to resolve assembly or its dependency: {ex.Message}"); return null; } } @@ -137,7 +137,7 @@ private static void LoadPlugin(Assembly assembly) } catch (Exception ex) { - Utility.Log(type.Name, LogLevel.Error, $"Failed to initialize plugin: {ex.Message}"); + Utility.Log(nameof(Plugin), LogLevel.Error, $"Failed to initialize plugin: {ex.Message}"); } } } From d4d2371ac8c89e90bb319bcf8420c062d9cf176f Mon Sep 17 00:00:00 2001 From: erikzhang Date: Fri, 1 May 2020 22:55:02 +0800 Subject: [PATCH 7/8] Fix compilation error --- src/neo/Utility.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/neo/Utility.cs b/src/neo/Utility.cs index e6c94b7c6d..32e76f1f1c 100644 --- a/src/neo/Utility.cs +++ b/src/neo/Utility.cs @@ -26,7 +26,7 @@ private void Init(IActorRef sender) private void OnLog(LogLevel level, string message) { - Log(level, message); + Log("Akka", level, message); } } From 5df076da17ec61d698ae52105dbac577c967bf8f Mon Sep 17 00:00:00 2001 From: erikzhang Date: Fri, 1 May 2020 23:00:16 +0800 Subject: [PATCH 8/8] Simplify Logger --- src/neo/LogLevel.cs | 12 +++++++----- src/neo/Utility.cs | 17 ++--------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/neo/LogLevel.cs b/src/neo/LogLevel.cs index 1b8857c1ca..0c1c84334d 100644 --- a/src/neo/LogLevel.cs +++ b/src/neo/LogLevel.cs @@ -1,11 +1,13 @@ +using static Akka.Event.LogLevel; + namespace Neo { public enum LogLevel : byte { - Debug = 0, - Info = 1, - Warning = 2, - Error = 3, - Fatal = 4 + Debug = DebugLevel, + Info = InfoLevel, + Warning = WarningLevel, + Error = ErrorLevel, + Fatal = Error + 1 } } diff --git a/src/neo/Utility.cs b/src/neo/Utility.cs index 32e76f1f1c..c5145ad760 100644 --- a/src/neo/Utility.cs +++ b/src/neo/Utility.cs @@ -12,21 +12,8 @@ internal class Logger : ReceiveActor { public Logger() { - Receive(e => OnLog(LogLevel.Debug, e.ToString())); - Receive(e => OnLog(LogLevel.Info, e.ToString())); - Receive(e => OnLog(LogLevel.Warning, e.ToString())); - Receive(e => OnLog(LogLevel.Error, e.ToString())); - Receive(_ => Init(Sender)); - } - - private void Init(IActorRef sender) - { - sender.Tell(new LoggerInitialized()); - } - - private void OnLog(LogLevel level, string message) - { - Log("Akka", level, message); + Receive(_ => Sender.Tell(new LoggerInitialized())); + Receive(e => Log(e.LogSource, (LogLevel)e.LogLevel(), e.Message.ToString())); } }