问题标签 [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.
ruby - 几天后Log4r没有写日志(7天)
每台服务器(共 2 台服务器)上运行两个进程实例,并且在进程启动一周后,它停止在所有 4 个日志文件(每个进程都有其各自的日志文件)中写入日志。进程仍在运行,但每个进程已停止更新其各自的日志文件。
下面是我如何初始化 log4r 和写日志。
这里最大大小为 104MB,时间为 604800 秒,最大备份设置为 0。
ruby-on-rails - 使用 Log4r 时出错
我在使用 Log4r 时遇到问题。
我试过这个,但仍然出现错误:
ruby - 如何在 log4r 中定义自己的级别而不与其他 log4r 记录器发生冲突?
我可以用 log4r 定义我自己的日志级别:
log4r文档说:
此外,应该在使用 Log4r 完成任何其他操作之前设置自定义级别,否则将加载默认级别。
这种限制是两个问题的根源:
Log4r::Configurator.custom_levels
如果没有定义记录器,则仅设置新级别。- 如果我在定义自己的级别后创建另一个记录器,我会再次获得自定义级别。
问题1:
例子:
不使用自定义级别。
问题 2
如果我定义自己的级别,我就不可能回到默认值。
例子:
背景:
我想创建一个具有我自己的级别的记录器,类似于 Apache :
DEBUG INFO NOTICE WARN ERROR CRIT ALERT EMERG
。
当我这样做时,我遇到了两个问题:
- 如果另一个应用程序也使用 log4r,则该应用程序没有致命级别。这可以解决,如果我在我的应用程序中添加一个致命级别。
- 如果在我的应用程序之前加载另一个应用程序并创建记录器,我的应用程序将失败,因为我的客户级别不可用。
我的问题:
如何创建具有自定义日志级别且对其他记录器没有副作用的记录器?
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:in
decode_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:in
load_xml_file' /root/src/upside/common/upside_logger.rb :16:in initialize'
/root/src/upside/common/logger_factory.rb:7:in
new' /root/src/upside/common/logger_factory.rb:7:in new_logger'
/root/src/upside/config/application.rb:30:in
block 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:in
execute_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:in
each' /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:in
before_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:in
tap'/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:in
require' /root/src/upside/script/rails:6:in `'
我已经仔细检查了 gem 安装,并且 emailoutputter.rb 与其他输出器(功能正常)位于正确的目录中。
谢谢!
ruby-on-rails - 如何使用rails实现登录rails?
我正在做一个项目,我必须在项目中使用日志记录,我选择log4r
了日志记录。
好吧,我想知道实现它的最佳方法是什么:
- 我是否应该创建一个实例并将该实例用于整个应用程序
- 我应该为每个类创建一个新的静态实例吗
- 我是否应该创建所有记录器的工厂并使用它。
我想实现第 3 个选项,但我不知道该怎么做,谁能告诉我如何实现第 3 个选项。
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::Worker
(delayed_job/lib/delayed/worker.rb 第 248 行)正在通过记录器的 add 方法记录一条消息,如下所示:
这对于 Ruby 的Logger
类是有效且正确的,请参阅Logger.html#method-i-add。但是,通过使用 log4r,它会解析为Log4r::Logger.add
(log4r/lib/log4r/logger.rb 第 119 行),它会尝试添加一个输出器。
我不确定为什么会发生这种情况,或者解决方案是什么。
ruby - ArgumentError:“初始化”的参数数量错误(1 为 2)?
对 ruby 相当陌生,玩过 Mini Test 和 log4r,尝试编写一个包装类。
收到以下错误:
这是课程:
这是测试:
我将是第一个承认两个文件中可能存在几个错误的人(因为我仍在学习),但我会尝试一步一步来。
我搜索了相关的 SO 文章,并在网上搜索了有关“初始化”的参数。要么他们没有直接关系,要么我误解了他们。任何帮助表示赞赏。
ruby - NameError: uninitialized constant Logger - 我应该以不同的方式执行此操作吗?
对 ruby 相当陌生,玩过 Mini Test 和 log4r,尝试编写一个包装类。
收到以下错误:
这是课程:
这是测试:
我将是第一个承认两个文件中可能存在几个错误的人(因为我仍在学习),但我会尝试一步一步来。
可能有几种方法可以做到这一点,我只是不确定这是否是其中之一。
从表面上看,使用@log = ::Logger.new
似乎是合理的,但也许我应该include log4r
改为扩展模块?(每个Ruby:模块、要求和包含)
我搜索了相关的 SO 文章,并在网上搜索了有关“初始化”的参数。要么他们没有直接关系,要么我误解了他们。任何帮助表示赞赏。
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
ruby-on-rails-4 - Sidekiq 记录到终端和日志文件
我正在使用 Sidekiq 在我的 Rails 服务器中排队一些作业。根据Logging wiki,就像在config/sidekiq.yml中添加以下内容一样简单
但是,现在这只记录到该日志文件,如果我也想写出 STDOUT 怎么办(至少在开发中)?