Right now in my application,at certain points we are logging some heavy stuff into the log files.
Basically only for logging we are creating JSON of the data availab
You can also try CoralLog to asynchronously log data using the disruptor pattern. That way you spend minimum time in the logger thread and all the hard work is passed to the thread doing the actual file I/O. It also provides Memory Mapped Files to speed up the consumer thread and reduce queue contention.
Disclaimer: I am one of the developers of CoralLog