Просмотр Log4Net с использованием кольцевого буфера

Я использую Log4Net в приложении WPF. У меня это работает, где я использую NotifyAppender для обновления TextBox в моей форме. Это входит с самым старым наверху, самым новым на основании.

Я должен полностью изменить это и иметь самое новое сверху. Я также хотел бы иметь возможность "заморозить" обновление представления, чтобы пользователь мог прокручивать сообщения, а затем иметь возможность "разморозить" его. Любые сообщения, которые "буферизованы" теперь могут отображаться. Я предполагаю, что мне нужно захватить сообщения и поместить их в коллекцию, отсортировать их, а затем отобразить их в виде, но я не уверен, как захватить сообщения.

Каков наилучший способ сделать это?

1 ответ

Вы можете рассмотреть возможность использования MemoryAppender и получить к нему доступ из своего приложения WPF. Тем не менее, я думаю, что вам лучше написать собственного приложения (Подсказка: посмотрите исходный код MemoryAppender) и разрешите этому приложению более напрямую взаимодействовать с вашим приложением (т. Е. Вы можете использовать локатор служб для подключения к служба, которая получает ваши сообщения журнала. Эта служба в свою очередь используется вашей ViewModel (если вы используете MVVM) для заполнения вашего TextBox, Это, вероятно, работает лучше всего, если вы используете какой-либо контейнер IoC, но это не является строго обязательным.)

Другие вопросы по тегам