2017-02-15 5 views
0

Мне любопытно использовать nlog. Я не использовал его ранее. поэтому мне нравится использовать его сейчас в моем проекте. у меня есть вопрос.C#: Что касается настроек и использования Nlog

<rules> 
    <logger name="SomeNamespace.Component.*" minlevel="Trace" writeTo="logfile" final="true" /> 
    <logger name="*" minlevel="Info" writeTo="logfile" /> 
</rules> 

что-то здесь SomeNamespace.Component. *? покажите мне использование этого типа правила с образцом кода

что такое minlevel="Info"? Что значит minlevel здесь? какой другой вариант можно установить для minlevel?

благодаря

ответ

1

, что означает здесь SomeNamespace.Component. *?

Это означает, что это правило будет соответствовать любым регистраторам, имена которых начинаются с SomeNamespace.Component.. Обычно имя регистратора равно имени класса, в котором вы создаете регистратор (но вы можете также предоставить пользовательское имя регистратора):

private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); 

Такого правило конфигурации выше будет соответствовать следующим именам регистратора:

SomeNamespace.Component.MyClass 
SomeNamespace.Component.Cool.Other.Namespace.YourClass 
// etc 

И.Э. любой журнал, созданный в классе от SomeNamespace.Component., будет соответствовать правилу. Независимо от того, сколько у вас классов с регистраторами.

Что такое minlevel = "Info"?

Это минимальный уровень сообщений журнала, которые будут регистрироваться регистратором.

Logger.Debug("This will not be logged"); 
Logger.Info("This will be logged"); 

NLog поддерживает следующие уровни лога (вы можете использовать любого из них, чтобы контролировать, какие сообщения будут регистрироваться):

  1. Трейса
  2. отлаживать
  3. информации
  4. Предупреждать
  5. Ошибка
  6. Фатальный

Проверить описание каждого уровня на уровне NLog wiki. Обычно вы должны использовать минимальный уровень Info, который будет регистрировать любые сообщения об ошибках и некоторые высокоуровневые сведения о том, что делает система. Для цели отладки вы можете включить Trace или Debug уровень, но ваш файл журнала может стать огромным очень быстро. Производительность также будет больно, когда вы будете писать много сообщений журнала.

+0

Вы говорите об этом 'Logger logger = LogManager.GetLogger (« SomeNamespace.Component »); logger.Debug ("...") будет записывать в файл или u значит что-то еще? –

+0

было бы полезно, если бы вы пришли с небольшим примером для этого 'SomeNamespace.Component' –

+0

@Tridip Я имею в виду, если у вас есть пространство имен' namespace SomeNamespace.Component.Foo {...} ', и у вас есть класс' Bar', объявленный в этом namespace с loger (внутри Bar), тогда имя журнала будет 'SomeNamespace.Component.Foo.Bar', и он будет соответствовать шаблону правила –

Смежные вопросы