- refactoring

master
Simon G 5 years ago
parent 14b7901b25
commit 4b7fd57571
  1. 41
      Lib.Logging/Log.cs
  2. 4
      Lib.Logging/Loggers/FileLogger.cs
  3. 7
      Lib.Logging/Properties/AssemblyInfo.cs
  4. 4
      Lib.Tools/Enumerables.cs
  5. 2
      Mystify.sln.DotSettings

@ -69,14 +69,7 @@ namespace Lib.Logging
/// </summary>
/// <param name="ex">The <see cref="Exception"/></param>
/// <typeparam name="T">The <see cref="Type"/> of the caller</typeparam>
public static async Task Write<T>(Exception ex)
{
ILogComponent component = GetDefaultComponentFromType<T>();
await Write(component, LogLevels.Error, ex.Message);
await Write(component, LogLevels.Error, "");
await Write(component, LogLevels.Error, ex.StackTrace);
}
public static async Task Write<T>(Exception ex) => await Write(GetDefaultComponentFromType<T>(), ex);
/// <summary>
/// Write a given <see cref="Exception"/> to the set <see cref="ILogger"/>s
@ -87,7 +80,9 @@ namespace Lib.Logging
{
await Write(component, LogLevels.Error, ex.Message);
await Write(component, LogLevels.Error, "");
await Write(component, LogLevels.Error, ex.StackTrace);
if (ex.StackTrace != null)
await Write(component, LogLevels.Error, ex.StackTrace);
}
/// <summary>
@ -101,8 +96,12 @@ namespace Lib.Logging
await Write(component, LogLevels.Error, ex.Message);
await Write(component, LogLevels.Error, "");
await Write(component, LogLevels.Error, ex.StackTrace);
await Write(component, LogLevels.Error, "");
if (ex.StackTrace != null)
{
await Write(component, LogLevels.Error, ex.StackTrace);
await Write(component, LogLevels.Error, "");
}
foreach (var innerException in ex.InnerExceptions)
{
@ -128,11 +127,7 @@ namespace Lib.Logging
/// <param name="logLevel">The <see cref="LogLevels"/></param>
/// <param name="line">The given <see cref="string"/></param>
/// <typeparam name="T">The <see cref="Type"/> of the caller</typeparam>
public static async Task Write<T>(LogLevels logLevel, string line)
{
ILogComponent component = GetDefaultComponentFromType<T>();
await Write(component, logLevel, line);
}
public static async Task Write<T>(LogLevels logLevel, string line) => await Write(GetDefaultComponentFromType<T>(), logLevel, line);
/// <summary>
/// Write a given <see cref="string"/> with the <see cref="ILogComponent"/> and the <see cref="LogLevels"/> to the set <see cref="ILogger"/>s
@ -146,7 +141,7 @@ namespace Lib.Logging
if (logLevel > LogLevel) //logLevel of the message can't be higher than the set LogLevel
return;
ILogMessage message = new LogMessage()
ILogMessage message = new LogMessage
{
LogLevel = logLevel,
Timestamp = DateTime.Now,
@ -157,10 +152,8 @@ namespace Lib.Logging
if (Loggers == null)
throw new LogNotInitializedException();
foreach (var logger in Loggers)
{
foreach (var logger in Loggers)
await logger.Write(message);
}
}
/// <summary>
@ -170,8 +163,8 @@ namespace Lib.Logging
/// <returns></returns>
protected static ILogComponent GetDefaultComponentFromType<T>()
{
Assembly assembly = Assembly.GetAssembly(typeof(T));
LogComponentAttribute attribute = assembly.GetCustomAttribute<LogComponentAttribute>();
Assembly? assembly = Assembly.GetAssembly(typeof(T));
LogComponentAttribute? attribute = assembly?.GetCustomAttribute<LogComponentAttribute>();
return attribute ?? new LogComponentAttribute("UNKNOWN");
}
@ -197,10 +190,8 @@ namespace Lib.Logging
{
if (Loggers != null)
{
foreach (var logger in Loggers)
{
foreach (var logger in Loggers)
await logger.DisposeAsync();
}
Loggers.Clear();
}

@ -18,7 +18,7 @@ namespace Lib.Logging.Loggers
private readonly StreamWriter _fileWriter;
private readonly Timer _timer;
private readonly SemaphoreSlim _lockObject = new SemaphoreSlim(1);
private readonly SemaphoreSlim _lockObject = new(1);
/// <summary>
/// Constructor for <see cref="FileLogger"/>
@ -49,7 +49,7 @@ namespace Lib.Logging.Loggers
}
}
private async void TimerCallback(object state) => await Flush();
private async void TimerCallback(object? state) => await Flush();
private async Task Flush()
{

@ -4,9 +4,4 @@
using Lib.Logging;
[assembly:LogComponent("LOGGING")]
namespace Lib.Logging.Properties
{
}
[assembly:LogComponent("LOGGING")]

@ -18,10 +18,8 @@ namespace Lib.Tools
public static IEnumerable<T> ForEach<T>(this IEnumerable<T> enumerable, Action<T> action)
{
IEnumerable<T> list = enumerable.ToList();
foreach (T item in list)
{
foreach (T item in list)
action(item);
}
return list;
}

@ -1,6 +1,6 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Constants/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateConstants/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PublicFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PublicFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=StaticReadonly/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /&gt;</s:String>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Controllables/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
Loading…
Cancel
Save