Зарегистрируйте каждый SQL-запрос к базе данных в направляющих

Плохой API является тем, который не используется его целевой аудиторией.

А хороший API является тем, который используется его целевой аудиторией для цели, для которой это было разработано.

А большой API является тем, который используется и его целевой аудиторией для его намеченной цели, и непреднамеренной аудиторией по причинам, непредвиденным ее разработчиками.

, Если Amazon публикует свой API и как SOAP и как REST и остальных, версия побеждает, который не означает, что базовый API SOAP был плох.

я предположил бы, что то же будет верно для Вас. Можно считать все, что Вы хотите о дизайне и стараетесь изо всех сил, но испытание на кислотность будет использованием. Проведите некоторое время, создавая способами надеть обратную связь, какие работы и что не делает и быть готовым осуществить рефакторинг по мере необходимости для создания его лучше.

13
задан luca 27 October 2009 в 08:04
поделиться

4 ответа

Ведение журнала SQL в рельсах - Вкратце - вам нужно переопределить метод выполнения ActiveRecord. Там вы можете добавить любую логику для логирования.

6
ответ дан 1 December 2019 в 21:52
поделиться

Вот упрощенная версия того, с чем связан c0r0ner, чтобы лучше показать:

connection = ActiveRecord::Base.connection
class << connection
  alias :original_exec :execute
  def execute(sql, *name)
    # try to log sql command but ignore any errors that occur in this block
    # we log before executing, in case the execution raises an error
    begin
        File.open(Rails.root.join("/log/sql.txt"),'a'){|f| f.puts Time.now.to_s+": "+sql}
    rescue Exception => e
      ;
    end
    # execute original statement
    original_exec(sql, *name)
  end
end
15
ответ дан 1 December 2019 в 21:52
поделиться

Если вы используете mysql, я бы посмотрел на mysqlbinlog. Он будет отслеживать все, что потенциально обновляет данные. вы можете легко извлечь из этого журнала все, что вам нужно.

http://dev.mysql.com/doc/refman/5.0/en/mysqlbinlog.html

http://dev.mysql.com/doc /refman/5.0/en/binary-log.html[12115 impression

1
ответ дан 1 December 2019 в 21:52
поделиться

SQL Server? Если так ...

На самом деле, я бы сделал это в конце SQL. Вы можете настроить трассировку и собирать каждый запрос, поступающий через соединение с определенным именем приложения. Если вы сохраните его в таблице, вы можете легко запросить эту таблицу позже.

0
ответ дан 1 December 2019 в 21:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: