Как изменить местоположение журнала aws-ruby? - PullRequest
0 голосов
/ 12 января 2010

Я нашел метод set_log в документации , я просто не могу понять синтаксис для его вызова. Вот что я попробовал:

require 'ruby-aws'
Amazon::Util::Logging.set_log('my.log')
NoMethodError: undefined method `set_log' for Amazon::Util::Logging:Module

Ответы [ 3 ]

1 голос
/ 21 декабря 2011

Я столкнулся с этой проблемой при попытке развернуть сайт Ruby-on-Rails, который использует 'aws-ruby' для heroku (я получил ошибку "Permission denied - ruby-aws.log").

Чтобы изменить местоположение файла журнала с 'ruby-aws.log' на 'log / ruby-aws.log', я добавил следующее в инициализатор. Убедитесь, что это вызывается, прежде чем использовать какую-либо из библиотек aws-ruby. Обратите внимание на изменение в строке "set_log ...".

module Amazon
module Util
module Logging

  def log( str )
    set_log 'log/ruby-aws.log' if @@AmazonLogger.nil?
    @@AmazonLogger.debug str
  end

end
end
end
1 голос
/ 12 января 2010

Вы видите, что Amazon :: Util :: Logging - это модуль, а set_log - это «метод публичного экземпляра». Так что вам нужно

class NewClass
 include Amazon::Util::Logging

  def foo
    set_log('file.txt')
    log 'debug_message'
  end
end
0 голосов
/ 13 января 2011

Более простым способом было бы добавить эту строку:

set_log ( "/ DEV / нуль")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...