- refactoring

master
Simon G 5 years ago
parent 14b7901b25
commit 4b7fd57571
  1. 31
      Lib.Logging/Log.cs
  2. 4
      Lib.Logging/Loggers/FileLogger.cs
  3. 5
      Lib.Logging/Properties/AssemblyInfo.cs
  4. 2
      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,6 +80,8 @@ namespace Lib.Logging
{
await Write(component, LogLevels.Error, ex.Message);
await Write(component, LogLevels.Error, "");
if (ex.StackTrace != null)
await Write(component, LogLevels.Error, ex.StackTrace);
}
@ -101,8 +96,12 @@ namespace Lib.Logging
await Write(component, LogLevels.Error, ex.Message);
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,
@ -158,10 +153,8 @@ namespace Lib.Logging
throw new LogNotInitializedException();
foreach (var logger in Loggers)
{
await logger.Write(message);
}
}
/// <summary>
/// Get the default <see cref="ILogComponent"/> for the given <see cref="Assembly"/>
@ -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");
}
@ -198,9 +191,7 @@ namespace Lib.Logging
if (Loggers != null)
{
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()
{

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

@ -19,9 +19,7 @@ namespace Lib.Tools
{
IEnumerable<T> list = enumerable.ToList();
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