2011-10-03 15 views
6

Me gustaría incluir el registro en un módulo de Perl que estoy escribiendo, pero mantener la portabilidad para que las aplicaciones que lo usan no estén vinculadas a un mecanismo de registro específico, como Log::Log4Perl.¿Cómo incluir el registro en un módulo Perl?

Lo he considerado;

  1. Ingreso a STDERR y dejándolo a la aplicación para redirigir estos mensajes a su propio mecanismo de registro (como se menciona en el Log::Log4Perl FAQ).
  2. Incluyendo ningún registro en el módulo.

Sospecho que hay una manera mejor.

Respuesta

11

Log::Any

Log :: Cualquier permite a los módulos de CPAN para iniciar sesión de manera segura y eficiente mensajes, mientras que deja la aplicación elegir (o disminución a elegir) un mecanismo de registro tal como Log :: expedición o Entrar :: Log4perl .

+0

Eso se ve muy interesante. No puedo encontrar mucha discusión al respecto, ¿tengo curiosidad de que alguien lo esté usando? – Hugh

+1

Una búsqueda de dependencia inversa muestra algún uso: https://metacpan.org/requires/distribution/Log-Any?sort=[[2,1]]. Voy a intentarlo. – spazm

0

De cualquier forma que termine haciendo, tendrá que elegir una, y eso va a unirlo a un mecanismo. Así que también puede elegir uno.

¿Por qué no comprobar si Log :: Log4Perl está disponible? Si es así, genial, úsalo. De lo contrario, implemente una devolución de llamada en la que sus usuarios puedan engancharse, o un conjunto mínimo de API para permitirles controlar qué (o si) se conecta en absoluto.

Cuestiones relacionadas