Mas*_*ano 8 ruby logging ruby-on-rails
Rails(具体来说,Rails 6)定义了 ActiveSupport::Logger,根据文档和源代码,它似乎是Logger(Ruby 标准库之一)的包装器。
\n然而,在截至 2020 年 10 月的 Rails 6.0当前官方 Rails 参考中,配置文件中使用了标准 Logger。(也许它曾经是 ActiveSupport::Logger?)
\n现在,我想在log/development.log配置文件中指定与默认(在开发环境中)不同的日志文件文件名(例如,config/environments/development.rb)。做
config.logger = Logger.new(\'log/my_log_file.log\')\nRun Code Online (Sandbox Code Playgroud)\n够了吗?或者,使用 ActiveSupport::Logger 更好吗?如果是这样,有什么区别?
\n请注意,默认情况下,config/environments/development.rb没有定义有关日志文件名称的要遵循或修改的设置。不过,log/development.log它是在开发环境中自动创建的,因此必须在某个不起眼的地方定义它。
[编辑]这个答案暗示了我的表达方式。我确认它似乎适用于我的环境。但没有推理为什么so\xe2\x80\xa6 ActiveSupport::Logger是错误的?
\n正如您在问题中所解释的,ActiveSupport::Logger确实是标准的包装器Logger(https://github.com/rails/rails/blob/v6.1.4.1/activesupport/lib/active_support/logger.rb),并且是一个相当薄的一。
主要区别在于
AS::Logger配置默认日志格式化程序和silence暂时提高日志级别的方法,从而在块的持续时间内“静默”低于该级别的日志记录。它似乎还包含用于链接多个记录器的工具(broadcast类方法)。AS::Logger除非配置中指定了其他内容,否则Rails 会使用它。他们目前在文档中提到了该类:
Rails 使用 ActiveSupport::Logger 类来写入日志信息。
后来他们继续Logger在代码示例中使用该标准。可能只是为了说明目的。
使用其中之一取决于您是否需要默认格式化程序和静音。如果不这样做,Logger也可以正常工作,并且还可以节省一点开销。或者您可以更喜欢AS::Logger,因为它更通用。
| 归档时间: |
|
| 查看次数: |
3404 次 |
| 最近记录: |