我对 ruby 环境还很陌生,我一直在寻找一个不错的日志记录框架,以便在我的 ruby 和 rails 应用程序中使用它。
在我之前的经验中,我已经成功地使用了 log4j 和 log4p(perl 端口),并且期望与 log4r 具有相同级别的可用性(和成熟度)。
但是我必须说,log4r 框架中有很多东西根本不清楚。
1 记录器继承
记录器继承似乎根本没有管理!
如果我声明一个名为“myapp”的记录器,然后尝试获取一个记录器名称“myapp::engine”,则查找将以 NameError 结束。
我希望框架根据命名方案返回根记录器并使用“myapp”记录器。
Q1:当然我可以解决这个问题并使用查找方法自己管理名称,但是有没有更简洁的方法可以做到这一点而无需任何额外的编码?
2 YAML 配置
让我感到困惑的第二件事是 yaml 配置。在 log4r 站点上几乎没有关于这个系统的信息,文档链接到丢失的页面,所以我能找到的所有信息都包含在 gem 的示例目录中。
我很困惑 yaml 配置必须包含 pre_config 部分,并且我需要定义自己的级别。
如果我删除了 pre_config 部分,或者将所有“自定义”级别替换为标准级别(调试、信息、警告、致命),该示例将引发以下错误:
log4r/yamlconfigurator.rb:68:in `decode_yaml': Log level must be in 0..7 (ArgumentError)
所以似乎没有办法使用一个简单的文件,我们只声明框架的记录器和附加器。
Q2:我真的认为我错过了一些东西,这一定是提供简单 yaml conf 文件的一种方式。你有这种用法的例子吗?
3 XML 文件中的变量替换
Q3 : Yaml 配置系统似乎提供了这样的功能,但是我无法找到与 XML 文件类似的功能。有任何想法吗 ?
4 选择?
我必须说,与 log4j 和其他 log4j 端口相比,我对 log4r 的功能级别和成熟度感到非常失望。
我以其他语言记录 API 的坚实背景遇到了这个框架,发现自己在各种工作中工作只是为了让“基本的东西”在“现实世界的应用程序”中运行。
我的意思是一个复杂的应用程序,由几个 gem、控制台/脚本应用程序和一个 Rails Web 前端组成,其中配置必须相互化,并且我们在其中密集使用命名空间和继承。
为了找到更合适或更成熟的东西,我进行了多次搜索,但没有找到类似的东西。
Q4:你们知道可以在企业级应用程序中使用的 log4r 框架的任何(严重)替代方案吗?
感谢阅读所有这些!
我真的很感激任何指示,
亲切的问候,