mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-29 21:39:34 +02:00
added Logger injection module for Autofac, API boots up.
This commit is contained in:
36
NzbDrone.Core/Instrumentation/LogInjectionModule.cs
Normal file
36
NzbDrone.Core/Instrumentation/LogInjectionModule.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Autofac;
|
||||
using Autofac.Core;
|
||||
using NLog;
|
||||
|
||||
namespace NzbDrone.Core.Instrumentation
|
||||
{
|
||||
public class LogInjectionModule : Module
|
||||
{
|
||||
protected override void AttachToComponentRegistration(IComponentRegistry registry, IComponentRegistration registration)
|
||||
{
|
||||
registration.Preparing += OnComponentPreparing;
|
||||
}
|
||||
static void OnComponentPreparing(object sender, PreparingEventArgs e)
|
||||
{
|
||||
e.Parameters = e.Parameters.Union(new[]
|
||||
{
|
||||
new ResolvedParameter((p, i) => p.ParameterType == typeof(Logger), (p,i)=> GetLogger(p.Member.DeclaringType))
|
||||
});
|
||||
}
|
||||
|
||||
private static object GetLogger(Type type)
|
||||
{
|
||||
const string STRING_TO_REMOVE = "SyntikX";
|
||||
|
||||
var loggerName = type.FullName;
|
||||
if (loggerName.StartsWith(STRING_TO_REMOVE))
|
||||
{
|
||||
loggerName = loggerName.Substring(STRING_TO_REMOVE.Length + 1);
|
||||
}
|
||||
|
||||
return LogManager.GetLogger(loggerName);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user