Pregunta

Estoy usando Log4Perl como parte de un paquete para capturar lo que está haciendo una conexión DBI en particular. Mi plan actual es crear un nuevo objeto de registrador para cada conexión, a través de Log::Log4perl->get_logger($mysql_connect_id), que debería permitir que las diversas conexiones escriban en diferentes archivos o el mismo archivo sin atornillarnos.

Mi preocupación es sobre lo que sucede cuando la conexión está desconectada y ese registrador ya no es necesario. Si LOG4Perl solo mantiene estos registradores de forma indefinida, eso suena como una receta para una fuga de memoria.

¿Cuál es la mejor manera de deshacerse de un registrador después de que estoy seguro de que ya no es útil? O, por el contrario, es esto incluso un problema: ¿Log4Perl tiene algún tipo de mecanismo de eliminación incorporado que ya evite este tipo de fuga?


Editar: Mencionado en los comentarios de una pregunta, probablemente valga la pena mencionar aquí: log :: log4perl :: logger tiene un DESTROY método que parece prometedor. Sin embargo, es indocumentado y lanza un montón de advertencias de "uso de valor no inicializado en la ecuación de cadenas", lo que me da cuidado; Se siente como un truco. (Pero si esa es la mejor/única forma de hacerlo, supongo que la pregunta es "¿Cómo apago una advertencia específica que proviene de un paquete específico?")

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top