Fila de crônica + log4j2 async logger
Uso log4j2 2.10.0 e tenho o seguinte código:
SingleChronicleQueue q = SingleChronicleQueueBuilder.binary(args[0]).blockSize(536870912).build();
ExcerptAppender a = q.acquireAppender();
char[] chars = "abcdefghijklmnopqrstuvwxyz".toCharArray();
StringBuilder sb = new StringBuilder();
Random random = new Random();
for (int i = 0; i < 1000; i++) {
char c = chars[random.nextInt(chars.length)];
sb.append(c);
}
String t = sb.toString();
for (int i = 0; i < 1000000; i ++ ) {
m_logger.info(i + " " + t);
a.writeText(t);
}
O cq4 e o log estão gravando no mesmo diretório.
E no log, estava saindo bem até que eu pudesse ver
12:40:00.853 - [main] INFO c.c.c.a.r.SandboxApp 601049
12:40:00.853 - [main] INFO c.c.c.a.r.SandboxApp 601050
12:40:00.853 - [main] INFO c.c.c.a.r.SandboxApp 601051
12:40:06.156 - [main] INFO c.c.c.a.r.SandboxApp 601052
Há algum tipo de operação de E / S que atrasou 6 segundos.
Não sei o suficiente sobre disco, montagem etc. Isso desapareceria se eu comentar o writeText, mas não sei se é um problema de crônica ou log4j2.
Meu parâmetro log4j2 é
-DLog4jContextSelector = org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -DAsyncLogger.RingBufferSize = 65536 * 65536 -DAsyncLogger.WaitStrategy = Sleep -Dlog4j2.AsyncQue =
Aqui está o que o criador de perfil está mostrando
Obrigado!!