いくつかのフィードバック、logger
はクラスSprocketsTask
のattribute
です。
require 'logger'
module Rake
# Simple Sprockets compilation Rake task macro.
#
# Rake::SprocketsTask.new do |t|
# t.environment = Sprockets::Environment.new
# t.output = "./public/assets"
# t.assets = %w(application.js application.css)
# end
#
class SprocketsTask < Rake::TaskLib
# Logger to use during rake tasks. Defaults to using stderr.
#
# t.logger = Logger.new($stdout)
#
attr_accessor :logger
私はapiで情報を見つけることができませんでしたが、レールが使用するLog4rロガーについてRails Guideでいくつかの良い説明があります。
これは、あなたが
にレールを含むコードの説明は、ログ情報を書き込むためのactivesupportの:: Loggerクラスを利用しています。 Log4rのような他のロガーも代用可能です。
次の例のように、設定/ application.rbまたは任意の他の環境ファイルで代替ロガーを指定することができます。
config.logger = Logger.new(STDOUT)
config.logger = Log4r::Logger.new("Application Log")
をRails.root /ログ/
の下で、デフォルトでは、ログファイルを作成し、そのコマンド
あなたが何かをログに記録されている場合番目の場合についてlog levels
、それは、対応するログに印刷されていますされている必要な情報eメッセージのログレベルが、設定されたログレベル以上である。現在のログレベルを知りたい場合は、Rails.logger.level
メソッドを呼び出すことができます。
利用可能なログレベルは、次のとおり:debug
、:info
、:warn
、:error
、:fatal
、及び:unknown
、それぞれ、5まで0からログレベル番号に対応します。デフォルトのログレベルを変更するには、
config.log_level = :warn # In any environment initializer, or
Rails.logger.level = 0 # at any time
を使用これはLog4r::Logger.rb
クラスです。 で設定されている:level
の場合はattr_reader
です。だから私はt.logger.level = 2
が:warn
Rake::SprocketsTask.new do |t|
t.logger = Logger.new("log/assets.log")
t.logger.level = 2
end
:debug
、:info
、:warn
、:error
、にlevel
を設定しなければならないと考えている
Log4r::Logger.new('Assets Log', :warn)
を:あなたが実行してレベルを設定することができます
module Log4r
# See log4r/logger.rb
class Logger
attr_reader :name, :fullname, :path, :level, :parent
attr_reader :additive, :trace, :outputters
# Logger requires a name. The last 3 parameters are:
#
# level:: Do I have a level? (Otherwise, I'll inherit my parent's)
# additive:: Am I additive?
# trace:: Do I record the execution trace? (slows things a wee bit)
def initialize(_fullname, _level=nil, _additive=true, _trace=false)
# validation
raise ArgumentError, "Logger must have a name", caller if _fullname.nil?
Log4rTools.validate_level(_level) unless _level.nil?
validate_name(_fullname)
# create the logger
@fullname = _fullname
@outputters = []
@additive = _additive
deal_with_inheritance(_level)
LoggerFactory.define_methods(self)
self.trace = _trace
Repository[@fullname] = self
end
0、および:unknown
であり、ログレベル番号0〜5にそれぞれ対応します。
Log4r::Logger
が再設定level
属性に方法def level=(_level)
を持っている、ので、また、これは動作します。
# Set the logger level dynamically. Does not affect children.
def level=(_level)
Log4rTools.validate_level(_level)
@level = _level
LoggerFactory.define_methods(self)
Logger.log_internal {"Logger '#{@fullname}' set to #{LNAMES[@level]}"}
@level
end
あなたは❤️ 'config.assets.quiet = true'を、あなたの環境では/ development.rb詳細な応答のための – fangxing