【问题标题】:Configure padrino logger for stage environment?为舞台环境配置 padrino 记录器?
【发布时间】:2012-11-15 12:00:18
【问题描述】:

如何启用除 prod、dev 或 test 之外的其他环境的 padrino 记录器。例如,舞台环境?

我的舞台环境中的 padrino 应用程序不写入文件日志。

我试过了

Padrino::Logger::Config[:stage][:stream] = :to_file
Padrino::Logger::Config[:stage][:log_level]  = :devel

但我收到了错误

$ - > RACK_ENV=homolog bundle exec padrino start
Users/carlospereira/ws/nutri/config/boot.rb:15:in `<top (required)>': undefined method `[]=' for nil:NilClass (NoMethodError)
from /Users/carlospereira/.rvm/gems/ruby-1.9.2-p320@nutri/bundler/gems/padrino-framework-94d09af7573a/padrino-core/lib/padrino-core/cli/base.rb:24:in `require'
from /Users/carlospereira/.rvm/gems/ruby-1.9.2-p320@nutri/bundler/gems/padrino-framework-94d09af7573a/padrino-core/lib/padrino-core/cli/base.rb:24:in `start'
from /Users/carlospereira/.rvm/gems/ruby-1.9.2-p320@nutri/gems/thor-0.15.2/lib/thor/task.rb:27:in `run'
from /Users/carlospereira/.rvm/gems/ruby-1.9.2-p320@nutri/gems/thor-0.15.2/lib/thor/invocation.rb:120:in `invoke_task'
from /Users/carlospereira/.rvm/gems/ruby-1.9.2-p320@nutri/gems/thor-0.15.2/lib/thor.rb:275:in `dispatch'
from /Users/carlospereira/.rvm/gems/ruby-1.9.2-p320@nutri/gems/thor-0.15.2/lib/thor/base.rb:408:in `start'
from /Users/carlospereira/.rvm/gems/ruby-1.9.2-p320@nutri/bundler/gems/padrino-framework-94d09af7573a/padrino-core/bin/padrino:9:in `<top (required)>'
from /Users/carlospereira/.rvm/gems/ruby-1.9.2-p320@nutri/bin/padrino:23:in `load'
from /Users/carlospereira/.rvm/gems/ruby-1.9.2-p320@nutri/bin/padrino:23:in `<main>'

在我的 boot.rb 中有:

PADRINO_ENV  = ENV["PADRINO_ENV"] ||= ENV["RACK_ENV"] ||= "development"  unless defined?(PADRINO_ENV)
PADRINO_ROOT = File.expand_path('../..', __FILE__) unless defined?(PADRINO_ROOT)

require 'rubygems' unless defined?(Gem)  
require 'bundler/setup'
Bundler.require(:default, PADRINO_ENV)

Padrino::Logger::Config[:homolog][:stream] = :to_file
Padrino::Logger::Config[:homolog][:log_level]  = :devel

Padrino.before_load do
  Encoding.default_internal = nil
end

Padrino.after_load do
  DataMapper.finalize
end

Padrino.load!

我剪掉了 cmets,但第 15 行是

Padrino::Logger::Config[:homolog][:stream] = :to_file

我也试过了

if PADRINO_ENV == 'homolog'
  log_file_name = "#{PADRINO_ROOT}/log/#{PADRINO_ENV}_#{(ENV['APP_PROCESS_NAME'] || File.basename($0))}.log"
  log_file = File.new(log_file_name, "a+")
  PADRINO_LOGGER = { :homolog    => { :log_level => :debug, :stream => log_file }} 
end

但我仍然收到消息:

/Users/carlospereira/ws/nutri/config/boot.rb:19: warning: already initialized constant PADRINO_LOGGER
No logging configuration for :homolog found, falling back to :production

第 19 行是

PADRINO_LOGGER = { :homolog    => { :log_level => :debug, :stream => log_file }}

并且日志文件中没有写入任何日志。

有什么想法吗?

Tkz

【问题讨论】:

    标签: ruby sinatra padrino


    【解决方案1】:

    这就是我们在暂存环境中启用它的方式。

    config/boot.rb的相关部分

    PADRINO_LOGGER = { :staging => { :log_level => :debug, :stream => :to_file }} if PADRINO_ENV == 'staging'
    

    【讨论】:

    • 嗨,乔纳森!我按照你说的做了,当我在我的舞台环境(同源)中启动应用程序时,我收到一个错误 /Users/carlospereira/ws/nutri/config/boot.rb:19: warning: already initialized constant PADRINO_LOGGER No logging configuration for :homolog found, falling back to :production 并且仍然不写入日志文件。我会用那个更新我的问题
    • 这个错误听起来很简单,您已经在其他地方定义了PADRINO_LOGGER...您之前的定义是什么样的?
    • 哈...当然!我将代码放在bundle.require(:default, PADRINO_ENV) 之后并得到错误。现在我在PADRINO_ROOT 定义之后放入文件的开头并工作!非常感谢,乔纳森
    【解决方案2】:

    你可以在config/boot.rb中设置这个

    Padrino::Logger::Config[:stage][:stream] = :to_file
    Padrino::Logger::Config[:stage][:log_level]  = :devel
    

    参考API Doc

    【讨论】:

    • 嗨,CK-。感谢您的关注,但我之前尝试过这个,我得到:/config/boot.rb:21:in block in &lt;top (required)&gt;': undefined method []=' for nil:NilClass (NoMethodError)
    • 除非您发布 boot.rb 文件和错误堆栈跟踪,否则我无法猜测您为什么会收到该错误。
    • 我用我的 boot.rb 和堆栈跟踪更新了我的帖子。我错过了什么吗?也许我应该在其他地方声明我的 :homolog 环境?再次感谢你,CK-
    【解决方案3】:

    我的解决方案是使用哈希,否则我会在日志中获得 ascii 颜色:

    Padrino::Logger::Config[:development] = { :log_level => :debug, :stream => :to_file }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-19
      • 2019-05-12
      • 1970-01-01
      • 2011-09-27
      • 2018-10-15
      • 2021-06-21
      • 1970-01-01
      • 2013-06-21
      相关资源
      最近更新 更多