The two different processors

The processor is responsible for handling the physical logging. For every log request the processor will recieve a LogRecord containing all necessary informations. It will then process the request by first calling the formatter and then passing the formatted message to the handler.
The first processor is a asynchronous processor. This one will store the LogRecords and a separate thread will process them. Using this approach the logging will not affect the performance of your application. No matter which handler you use and how time consuming the logging will be. The second one is the direct processor which will directly process every log request. Note that this can of course slow down your application depending on which targets are switched on and how many log request must be handled. Therefore the asynchronous processor should be preferred and is also the default processor. But there are circumstances where this might not matter. One example would be that you use a logger in your JUnit Testcases and you need a direct result.
In order to define which log processor will be used you need to create a file called jlo.properties and make sure this one is in the classpath. Put in a line like this:
processor=direct
If no properties file is found or no entry called processor then the asynchronous processor will be used.