Hi Soko,
That's a classic scenario when log formats vary slightly. You are correct that a single DsvParser pattern will struggle because it expects a fixed number of columns, as optional columns are not supported within a single pattern.
However, you can achieve the result you want by using
multiple parser configurations. This is much simpler than writing a custom parser or post-processor.
It's important to note that the Multi-Pattern Parser is not available in the Parser Wizard and must be configured manually. Your parser configuration will look something like:

LogViewPlus will then try to match each line against the first pattern. This will correctly parse your more detailed VirusScannerService lines. If that pattern fails to match (which it will for your first three lines), it will fall back and try the second pattern, which will parse them correctly. Correct processing depends on failing when a pattern is not matched, so it is important to list your configurations from most to least sophisticated (number of parameters).
This gives you the "optional columns" behavior you're looking for:

Multiple lines in the message should not be a problem. That is standard behaviour for the message (%m) column.
Hope that helps!
Toby