Estoy usando el maravilloso AnyEvent para crear un servidor TCP asíncrono (específicamente, un servidor MUD).¿Qué módulo de registro usar bajo AnyEvent de Perl?
Para mantener todo funcionando sin problemas y con la menor cantidad posible de código de bloqueo/síncrono, he sustituido algunos módulos que estaba utilizando con su homólogo asíncrono, por ejemplo AnyEvent::Memcached y AnyEvent::Gearman. Esto permite que el programa principal sea bastante rápido, lo cual es deseable. He codificado la necesidad de que algunas de estas llamadas sean sincrónicas.
Un problema que tengo actualmente, y el foco de esta pregunta, es el registro.
Antes de pasar a AnyEvent para este programa de servidor, estaba usando Log::Log4perl ya que me permite ajustar qué módulos o subrutinas se deben registrar, a qué nivel y a qué salida de registro (pantalla, archivo, etc.).
El problema aquí es que las acciones de Log4perl (advertir, información, etc.) se realizan actualmente sincrónicamente, pero no es necesario mientras las líneas de registro finalmente terminen en la pantalla/archivo (y en el orden correcto)
¿Sigue siendo Log :: Log4perl la elección correcta cuando se utiliza un controlador de eventos asincrónico como AnyEvent, o debería buscar en un módulo diferente? Si es así, ¿cuál es el recomendado?
Gracias por aclarar que un appender asincrónico no parece existir – mfontani