I'm using OtrosLogViewer. You can mark log events manually or using string/regular expression. You can filter events based on level, time thread, string or regular expression. Logs can be imported by listening on socket or connecting to Log4j SocketHubAppender
You can take a look at Youtube video or screenshots:

Disclaimer: I am the author of OtrosLogViewer