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