如何在Perl模块中包含日志记录?

时间:2011-10-03 14:29:27

标签: perl logging

我想在我正在编写的Perl模块中包含日志记录,但是要保持可移植性,以便使用它的应用程序不会绑定到特定的日志记录机制,例如Log::Log4Perl

我考虑过了;

  1. 登录到STDERR并将其留给应用程序,将这些消息重定向到它自己的日志记录机制(如Log::Log4Perl FAQ中所述)。
  2. 根本不包括登录模块。
  3. 我怀疑有更好的方法。

2 个答案:

答案 0 :(得分:11)

Log::Any

  

Log :: Any允许CPAN模块安全有效地记录消息,同时让应用程序选择(或拒绝选择)Log :: Dispatch或Log :: Log4perl等日志记录机制。

答案 1 :(得分:0)

无论你最终做什么,你都必须选择一个,这将把它与一个机制联系起来。所以不妨选一个。

为什么不检查Log :: Log4Perl是否可用?如果是,那很好,使用它。如果没有,要么实现用户可以挂钩的回调,要么使用最小的API来让他们控制你记录的内容(或者是否)?