Skip to content

Commit

Permalink
fix: Cleaning up name used for generic types
Browse files Browse the repository at this point in the history
generic types should now be readable, instead of showing fully qualified name for generic args
  • Loading branch information
James-Frowen committed Jul 7, 2023
1 parent f06c375 commit d846f13
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions Assets/Mirage/Runtime/Logging/LogFactory.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using UnityEngine;

Expand All @@ -18,12 +19,24 @@ public static class LogFactory

public static ILogger GetLogger<T>(LogType defaultLogLevel = LogType.Warning)
{
return GetLogger(typeof(T).FullName, defaultLogLevel);
return GetLogger(typeof(T), defaultLogLevel);
}

public static ILogger GetLogger(System.Type type, LogType defaultLogLevel = LogType.Warning)
{
return GetLogger(type.FullName, defaultLogLevel);
// Full name for generic type is messy, instead
if (type.IsGenericType && !type.IsGenericTypeDefinition)
{
var genericArgs = string.Join(",", type.GetGenericArguments().Select(x => x.Name));
// remove `1 from end of name
var name = type.Name.Substring(0, type.Name.IndexOf('`'));

return GetLogger($"{type.Namespace}.{name}<{genericArgs}>", defaultLogLevel);
}
else
{
return GetLogger(type.FullName, defaultLogLevel);
}
}

public static ILogger GetLogger(string loggerName, LogType defaultLogLevel = LogType.Warning)
Expand Down

0 comments on commit d846f13

Please sign in to comment.