Порог Log4net appender, не работающий

  1. Так номер 1 выше . , Что такое Инверсия Управления?

  2. Обслуживание является вещью номер один, которую оно решает для меня. Это гарантирует, что я использую интерфейсы так, чтобы два класса не были близкими друг с другом.

  3. В использовании контейнера как замок Windsor, это решает проблемы обслуживания еще лучше. Способность выгрузить компонент, который переходит к базе данных для той, которая использует основанную на файле персистентность, не изменяя строку кода, является потрясающей (изменение конфигурации, Вы сделаны).

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

    public class MessagePublisher
    {
        public MessagePublisher(IMapper mapper,IRemoteEndpoint endPointToSendTo)
        {
          //setup
        }
    }
    

    я записал его однажды, но теперь я могу ввести много типов в этот набор кода, если я публикую различные типы сообщений. Я могу также записать картопостроители, которые берут запись того же типа и отображают их на различные сообщения. Используя DI с Дженериками дал мне способность записать очень мало кода для выполнения многих задач.

    , О, да, существуют проблемы тестируемости, но они вторичны к преимуществам МОК/DI.

    я определенно люблю МОК/DI.

    3. Это становится более соответствующим минута, у Вас есть проект среднего размера несколько большей сложности. Я сказал бы, что это становится соответствующим минута, Вы начинаете чувствовать боль.

12
задан Philipp M 15 October 2013 в 15:26
поделиться

2 ответа

Вам нужно использовать свойство аддитивности . См. Пример здесь . Вам необходимо определить два регистратора.

0
ответ дан 2 December 2019 в 06:26
поделиться

Чтобы получить очень специфическую фильтрацию для приложения, вам необходимо настроить LevelMatchFilter или LevelRangeFilter для приложения файла журнала, чтобы фильтровать события, которые фактически вывод.
Например:

<filter type="log4net.Filter.LevelRangeFilter">
    <levelMin value="ERROR"/>
    <levelMax value="FATAL"/>
</filter>

или

<filter type="log4net.Filter.LevelMatchFilter">
    <levelToMatch value="ERROR"/>
</filter>

поместите один из них в свой тег , и это должно сработать для вас:

<appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net" >
    <filter type="log4net.Filter.LevelMatchFilter">
        <levelToMatch value="ERROR"/>
    </filter>
    <param name="File" value="log.txt" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d %M - %m%n" />
    </layout>
    <threshold value="ERROR"/>
</appender>

Примечание. Обновлено, чтобы удалить ошибку, указанную kgiannakakis.

6
ответ дан 2 December 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: