问题标签 [log4r]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
231 浏览

ruby - 几天后Log4r没有写日志(7天)

每台服务器(共 2 台服务器)上运行两个进程实例,并且在进程启动一周后,它停止在所有 4 个日志文件(每个进程都有其各自的日志文件)中写入日志。进程仍在运行,但每个进程已停止更新其各自的日志文件。

下面是我如何初始化 log4r 和写日志。

这里最大大小为 104MB,时间为 604800 秒,最大备份设置为 0。

0 投票
2 回答
732 浏览

ruby-on-rails - 使用 Log4r 时出错

我在使用 Log4r 时遇到问题。

我试过这个,但仍然出现错误:

0 投票
1 回答
522 浏览

ruby - 如何在 log4r 中定义自己的级别而不与其他 log4r 记录器发生冲突?

我可以用 log4r 定义我自己的日志级别:

log4r文档说:

此外,应该在使用 Log4r 完成任何其他操作之前设置自定义级别,否则将加载默认级别。

这种限制是两个问题的根源:

  • Log4r::Configurator.custom_levels如果没有定义记录器,则仅设置新级别。
  • 如果我在定义自己的级别后创建另一个记录器,我会再次获得自定义级别。

问题1:

例子:

不使用自定义级别。

问题 2

如果我定义自己的级别,我就不可能回到默认值。

例子:

背景:

我想创建一个具有我自己的级别的记录器,类似于 Apache : DEBUG INFO NOTICE WARN ERROR CRIT ALERT EMERG

当我这样做时,我遇到了两个问题:

  • 如果另一个应用程序也使用 log4r,则该应用程序没有致命级别。这可以解决,如果我在我的应用程序中添加一个致命级别。
  • 如果在我的应用程序之前加载另一个应用程序并创建记录器,我的应用程序将失败,因为我的客户级别不可用。

我的问题:

如何创建具有自定义日志级别且对其他记录器没有副作用的记录器?

0 投票
1 回答
214 浏览

ruby-on-rails - Log4r 配置器在实例化 EmailOutputter 时抛出异常

我正在使用 XML 配置文件设置 Log4r,但无法让 EmailOutputter 正常工作。这是我的输出器标签:

我已经使用 RubyMine 逐步调试器对所有 XML 变量进行了三重和四重检查。异常消息是:

未捕获的异常:创建输出器时出现问题:未初始化的常量 Log4r::Configurator::EmailOutputter /usr/local/lib/ruby/gems/1.9.1/gems/log4r-1.1.10/lib/log4r/configurator.rb:87:inblock in decode_xml' /usr/local/lib/ruby/1.9.1/rexml/element.rb:905:in阻止每个' /usr/local/lib/ruby/1.9.1/rexml/xpath.rb:67:ineach' /usr/local/lib/ruby/1.9.1/rexml/xpath.rb:67:in每个' /usr/local/lib/ruby/1.9.1/rexml/element.rb:905:in each' /usr/local/lib/ruby/gems/1.9.1/gems/log4r-1.1.10/lib/log4r/configurator.rb:87:indecode_xml' /usr/local/lib/ruby/gems/1.9.1/gems/log4r-1.1.10/lib/log4r/configurator.rb:82:in actual_load' /usr/local/lib/ruby/gems/1.9.1/gems/log4r-1.1.10/lib/log4r/configurator.rb:56:inload_xml_file' /root/src/upside/common/upside_logger.rb :16:in initialize' /root/src/upside/common/logger_factory.rb:7:innew' /root/src/upside/common/logger_factory.rb:7:in new_logger' /root/src/upside/config/application.rb:30:inblock in ' /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/ active_support/lazy_load_hooks.rb:34:incall' /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:34:inexecute_hook' /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:26:in block in on_load' /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:25:ineach' /usr/local/lib/ruby/gems/1.9 .1/gems/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:25:in on_load' /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/railtie/configuration.rb:43:inbefore_configuration' /root/src/upside/config/application.rb:29:in <class:Application>' /root/src/upside/config/application.rb:15:in' /root/src/upside/config/ application.rb:14:in<top (required)>' /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:53:in需要'/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:53:in block in <top (required)>' /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:50:intap'/usr/local/ lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:50:in <top (required)>' /root/src/upside/script/rails:6:inrequire' /root/src/upside/script/rails:6:in `'

我已经仔细检查了 gem 安装,并且 emailoutputter.rb 与其他输出器(功能正常)位于正确的目录中。

谢谢!

0 投票
1 回答
153 浏览

ruby-on-rails - 如何使用rails实现登录rails?

我正在做一个项目,我必须在项目中使用日志记录,我选择log4r了日志记录。

好吧,我想知道实现它的最佳方法是什么:

  1. 我是否应该创建一个实例并将该实例用于整个应用程序
  2. 我应该为每个类创建一个新的静态实例吗
  3. 我是否应该创建所有记录器的工厂并使用它。

我想实现第 3 个选项,但我不知道该怎么做,谁能告诉我如何实现第 3 个选项。

0 投票
2 回答
474 浏览

ruby - 使用延迟作业的 log4r 时出错

我有一个可用的 Rails 3.2 应用程序(Windows Server 2008 R2 上的 Ruby 1.9.2p290),它对多个后台作业使用延迟作业。我最近用 log4r 替换了 Rails 默认日志记录,它在 Rails 应用程序中运行良好。但是,当我启动rake jobs:work任务时,我收到一个抱怨 nil 输出器的错误:

还有其他人成功使用 log4r 延迟工作吗?我可以使用一些指针;通过 Google 或 DuckDuckGo 搜索找不到任何内容。

这是config/application.rb片段:

这是config/log4r.yml文件:


更新

好吧,在通过调试器运行 rake 任务之后,我弄清楚了发生了什么。

Delayed::Workerdelayed_job/lib/delayed/worker.rb 第 248 行)正在通过记录器的 add 方法记录一条消息,如下所示:

这对于 Ruby 的Logger类是有效且正确的,请参阅Logger.html#method-i-add。但是,通过使用 log4r,它会解析为Log4r::Logger.addlog4r/lib/log4r/logger.rb 第 119 行),它会尝试添加一个输出器。

我不确定为什么会发生这种情况,或者解决方案是什么。

0 投票
1 回答
8747 浏览

ruby - ArgumentError:“初始化”的参数数量错误(1 为 2)?

对 ruby​​ 相当陌生,玩过 Mini Test 和 log4r,尝试编写一个包装类。

收到以下错误:

这是课程:

这是测试:

我将是第一个承认两个文件中可能存在几个错误的人(因为我仍在学习),但我会尝试一步一步来。

我搜索了相关的 SO 文章,并在网上搜索了有关“初始化”的参数。要么他们没有直接关系,要么我误解了他们。任何帮助表示赞赏。

0 投票
1 回答
1352 浏览

ruby - NameError: uninitialized constant Logger - 我应该以不同的方式执行此操作吗?

对 ruby​​ 相当陌生,玩过 Mini Test 和 log4r,尝试编写一个包装类。

收到以下错误:

这是课程:

这是测试:

我将是第一个承认两个文件中可能存在几个错误的人(因为我仍在学习),但我会尝试一步一步来。

可能有几种方法可以做到这一点,我只是不确定这是否是其中之一。

从表面上看,使用@log = ::Logger.new似乎是合理的,但也许我应该include log4r改为扩展模块?(每个Ruby:模块、要求和包含

我搜索了相关的 SO 文章,并在网上搜索了有关“初始化”的参数。要么他们没有直接关系,要么我误解了他们。任何帮助表示赞赏。

0 投票
1 回答
712 浏览

ruby-on-rails-4 - Neo4j::ActiveNode:Module 的未定义方法 `logger=' (NoMethodError)

我正在尝试将 log4r 与 rails 4 和 neo4j 一起使用。我有带有活动记录的 log4r,它工作正常,但我无法让它与 neo4j 一起工作。我认为的主要问题是对于 neo4j 不可用的记录器方法。我正在使用 gem "neo4j"、"3.0.0.alpha.7" gem 和 "log4r"、"1.1.10"。

错误:

这是上的代码:

应用程序.rb

0 投票
1 回答
20205 浏览

ruby-on-rails-4 - Sidekiq 记录到终端和日志文件

我正在使用 Sidekiq 在我的 Rails 服务器中排队一些作业。根据Logging wiki,就像在config/sidekiq.yml中添加以下内容一样简单

但是,现在这只记录到该日志文件,如果我也想写出 STDOUT 怎么办(至少在开发中)?