I have written tests for similar situations by creating a bunch of children, having them write as quickly as they can for a while (say 1000 messages), then checking to make sure nothing was garbled and everything showed up. This test is probabilistic, so it's not guaranteed to find problems, but it's likely to, and more likely the longer you run it.
As a small addition: you should tweak sgifford's suggestion using the non-sychronized appender until you get the overwrite error reproducably.
Then use the synchronized version and see if it goes away.
-- Hofmator
Code written by Hofmator and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.