Implementing a log viewer with WPF

I seek advice for the best approach to implement a console-log viewer with WPF.

It should match the following criteria:

fast scrolling with 100.000+ lines

Some entries (like stacktraces) should be foldable

long items wrap

the list can be filtered by different criteria (searching, tags, etc)

when at the end, it should keep scrolling when new items are added

Line-elements can contain some sort of addition formatting like hyperlinks and occurrence counter

In general I have something in mind like the console window of FireBug and Chrome.

I played around with this but I didn't make much progress, because...
- the datagrid can't handle different item heights
- the scroll position is only updated after releasing the scrollbar (which is completely unacceptable).

I'm pretty sure, I need some form of virtualization and would love to follow the MVVM pattern.

DataTemplates for each kind of LogEntry type. These give you the ability to customize as
much as you want. I only implemented 2 kinds of LogEntries (basic and nested), but you get the idea. You may subclass LogEntry as much as you need. You may even support rich text or images.

Expandable (Nested) Items.

Word Wrap.

You can implement filtering, etc by using a CollectionView.

WPF Rocks, just copy and paste my code in a File -> New -> WPF Application and see the results for yourself.