Radarr/NzbDrone.Common/Instrumentation/NzbDroneLogger.cs

42 lines
1.1 KiB
C#

using System;
using System.Diagnostics;
using NLog;
namespace NzbDrone.Common.Instrumentation
{
public static class NzbDroneLogger
{
public static Logger GetLogger()
{
string loggerName;
Type declaringType;
int framesToSkip = 1;
do
{
var frame = new StackFrame(framesToSkip, false);
var method = frame.GetMethod();
declaringType = method.DeclaringType;
if (declaringType == null)
{
loggerName = method.Name;
break;
}
framesToSkip++;
loggerName = declaringType.Name;
} while (declaringType.Module.Name.Equals("mscorlib.dll", StringComparison.OrdinalIgnoreCase));
return LogManager.GetLogger(loggerName);
}
public static Logger GetLogger(object obj)
{
return LogManager.GetLogger(obj.GetType().Name);
}
public static Logger GetLogger<T>()
{
return LogManager.GetLogger(typeof(T).Name);
}
}
}