Я использую anotar catel для регистрации в моем приложении.Невозможно фильтровать имя класса (в NLog.config) при использовании записи anotar catel nlog
В NLog.config Я хочу использовать разные уровни для определенных классов. Пример config
<logger name="SpaceA.*"
minlevel="Info"
writeTo="file"
final="true" />
<logger name="*"
minlevel="Debug"
writeTo="file" />
Я создал класс NLogListener, который происходит из LogListenerBase Catel.
public class NLogListener : LogListenerBase
{
private static readonly NLog.Logger Log = NLog.LogManager.GetCurrentClassLogger();
protected override void Debug(ILog log, string message, object extraData)
{
Log.Debug(message);
}
protected override void Info(ILog log, string message, object extraData)
{
Log.Info(message);
}
protected override void Warning(ILog log, string message, object extraData)
{
Log.Warn(message);
}
protected override void Error(ILog log, string message, object extraData)
{
Log.Error(message);
}
#endregion Methods
}
В моем коде я использую Катель анотара Fody:
LogTo.Debug("Starting something...");
Теперь независимо от того, где я использую вырубку, все это отображается как исходящий из пространства имен, где я определил LogListerer.
Что я делаю неправильно и ergo, я должен изменить, чтобы иметь возможность фильтровать NLog в именах классов, как это обычно должно быть?
Спасибо Geert, что имеет смысл :) Однако, когда я делаю это я бегу в следующее сообщение об ошибке при вызове NLog.LogManager.GetCurrentClassLogger (журнал .TargetType): «Невозможно получить доступ к конструктору типа: VES.Framework.AppDomainExtensions. Разрешено ли разрешение?» Это происходит, если у меня есть вызовы сообщений журнала в статическом классе. Любые идеи по этому поводу? – dromer1967
Хорошо, изменив вызов GetLogger (log.TargetType.ToString()) сделал трюк :) – dromer1967