首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 3未登录开发

Rails 3未登录开发
EN

Stack Overflow用户
提问于 2011-06-29 06:12:56
回答 2查看 6K关注 0票数 5

我试图同时调用logger.debugRails.logger.debug,但是没有输出到development.log文件。对发生了什么有什么想法吗?

更新

我还应该注意,我是从控制器调用它的,其他信息(如SQL查询)正在输出到日志文件中。

源代码

https://github.com/kyledecot/skateparks-web

Gemfile

代码语言:javascript
运行
复制
source 'http://rubygems.org/'

gem 'rails', '3.0.7'
gem 'rake', '~> 0.8.7'
gem 'devise'
gem 'omniauth'
gem 'flash_cookie_session'
gem 'carrierwave'
gem 'mini_magick'
gem 'barometer'
gem 'gdata_19', :require => 'gdata'
gem 'google_places'
gem 'fleakr'
gem 'resque'
gem 'nokogiri'
gem 'decent_exposure'
gem 'cancan'
gem 'friendly_id'
gem 'breadcrumbs_on_rails'
gem 'defensio'
gem 'twitter'
gem 'thinking-sphinx', :require => 'thinking_sphinx'
gem 'ts-resque-delta', '1.0.0', :require => 'thinking_sphinx/deltas/resque_delta'
gem 'mime-types', :require => 'mime/types'
gem 'vpim'
gem 'will_paginate', '~> 3.0.pre2'
gem 'acts_as_geocodable'
gem 'acts_as_audited', '2.0.0.rc7'
gem 'passenger'
gem 'paper_trail'
gem 'thin'
gem 'compass', '>= 0.11.1'
gem 'guard-compass'
gem 'redcarpet'
gem 'mysql2', '0.2.7'
gem 'placemaker'

group :development, :test do

  gem 'sqlite3'
  gem 'capybara'  
  gem 'launchy'
  gem "rspec-rails"
  gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i
  gem 'guard-rspec'
  gem 'guard-bundler'
  gem 'guard-delayed'
  gem 'factory_girl'
  gem 'rspec'

end

group :production do 
end

enviornment.rb

代码语言:javascript
运行
复制
require File.expand_path('../application', __FILE__)
Skateparks::Application.initialize!
ActiveRecord::Base.logger.level = Logger::INFO

ImagesController

代码语言:javascript
运行
复制
def server
  logger.warn "WARN!" # nothing
  logger.info "INFO!" # nothing
  logger.debug "DEBUG!" # nothing
  puts Rails.logger.inspect # shows
  puts "PUTS!" # shows
end

rails s输出w/ 日志

代码语言:javascript
运行
复制
#<ActiveSupport::BufferedLogger:0x000001058867a0 @level=0, @buffer={}, @auto_flushing=1, @guard=#<Mutex:0x000001058866b0>, @log=#<File:/Users/Kyle/Desktop/skateparks-web/log/development.log>>
PUTS!


Started GET "/images/fd3b38315c30532b3a55bb84d35e5925/34_m.png" for 127.0.0.1 at 2011-06-29 03:41:50 -0400
  User Load (0.3ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-29 08:48:19

更新:

Viget已经从他们的回购( https://github.com/vigetlabs/loggable )中删除了这个可分割的宝石。

应用程序中的一些创业板正在使用vigetlabs/loggable gem。看看Gemfile.lock,看起来"fleakr“创业板正在使用它。

我注意到,虽然logger.info "hello"不工作,但Rails.logger.info "hello"工作得很好。

似乎可日志的创业板正在以某种方式重新定义记录器方法,使用LoggerStub什么也不做。

代码语言:javascript
运行
复制
class LoggerStub
  
  [:debug, :error, :fatal, :info, :warn].each do |method|
    class_eval <<-CODE
      def #{method}(message); nil; end
    CODE
  end
  
end

正在发生的事情是,可调用的gem定义了一个名为logger的类变量和实例变量,其中一个调用了.info等方法。这些方法只返回nil

我知道这是一个部分的答案(因为它不是一个完整的解决方案),但这应该是一个很好的信息,让您开始寻找合适的解决方案。

还请看一下这些文件:

  1. methods.rb
  2. stub.rb

更新

加上..。

代码语言:javascript
运行
复制
class ActionController::Base
    self.class.logger = Rails.logger
end

..should强制重写loggable对记录器的分配,并且事情应该正常工作。我想对class ActiveRecord::Base来说也是如此。

但当然,这是一个蛮力的解决方案,不能解决根本问题。要进行真正的“修复”,您需要深入研究fleakr或loggable,并可能在问题页上询问这些宝石的问题。

更新

查看是否可以让fleakr使用从纵横来的叉子:如果可用的话,那个叉子应该使用默认的Rails记录器。

票数 10
EN

Stack Overflow用户

发布于 2011-06-29 06:45:54

如果你打电话:叫"/images/92131721fcf3b8beb12b6e55014b9976/41_m.png“

.这不是要在图像控制器中显示动作,而不是:index吗?

(当然,如果不知道你的路线文件,我就无法确定.)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6516429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档