Nano Hash - криптовалюты, майнинг, программирование

NLog 4.0 игнорирует последний атрибут правила

Мое приложение использует NLog, настроенный с NLog.config, показанным ниже. Он также использует базу данных RavenDB, которая по умолчанию использует активные настройки NLog для ведения журнала.

Он создает множество сообщений DEBUG и INFO, которые загрязняют журнал. Я хочу регистрировать сообщения ERROR и WARN. Все записи, созданные RavenDB, происходят из пространств имен, начинающихся с Raven.

Я создал правила, как показано ниже. В основном существует последнее правило, которое предотвращает запись сообщений INFO / DEBUG из пространства имен Raven. * В файл журнала. Все работало хорошо, пока я не обновил пакеты NuGet до NLog 4.0. Теперь все сообщения RavenDB записываются в файл журнала.

Это ошибка или в версиях NLog произошли некоторые изменения конфигурации?

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <target name="file" xsi:type="AsyncWrapper" queueLimit="1000" overflowAction="Discard">
      <target
        name="file"
        xsi:type="File"
        layout="${longdate} - ${level:upperCase=true} - ${identity} - ${logger} - ${message}${onexception:inner=${newline}${exception:format=tostring}${newline}}"
        fileName="D:/Logs/AppName/${shortdate}.log" />
    </target>
  </targets>
  <rules>
    <logger name="Raven.*" writeTo="file" minlevel="Warn" final="true" />
    <logger name="*" writeTo="file" minlevel="Debug" />
  </rules>
</nlog>
26.07.2015

Ответы:


1

Очевидно, в NLog 4 произошли изменения в логике. Он больше не помечает сообщения из пространства имен Raven уровнем ниже Warn final.

http://nlog-project.org/2015/06/09/nlog-4-has-been-released.html

Таким образом, правило должно быть изменено, чтобы отправлять сообщения в пространстве имен Raven.* с maxlevel="INFO" в null цель.

27.07.2015
  • Это лучшая практика? Я делаю то же самое. Просто интересно, потому что это означает, что теперь у вас есть как минимум два правила для каждого пространства имен. 28.08.2016
  • Спасибо, что ответили на этот вопрос, я не нашел его в вики. Он по-прежнему говорит: «Атрибут final = true приведет к остановке дальнейшей обработки после выполнения записи». 22.12.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..