Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
audited_logfile
Ruby
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
README.rdoc
Rakefile
audited_logfile.gemspec

README.rdoc

Установка

gem 'audited_logfile'

Далее настраиваем audited.

$ rails generate audited:install
$ rake db:migrate

Возможные настройки

AuditedLogfile.setup do |config|
  config.logfile = 'log/mylogfile.log'
  config.skip = ['ActiveRecord::SessionStore::Session']
end

Есть возможность задать несколько Audited.current_user_method:

Audited.current_user_method = [:current_admin_user, :current_user]

По умолчанию логи пишутся в log/audit.log. Опция skip опеределяет массив имен классов, для которых логирование включено не будет.

Логирование событий по выгрузке отчетов

Audited.report(options)

Где options - хэш с любыми параметрами, которые используются при составлении отчета.

Пример конфига logrotate.

/etc/logrotate.d/spfacilities.conf

/home/spfacilities/spfacilities/shared/log/*.log {
   weekly
   size=10M
   missingok
   notifempty
   nomail
   copytruncate
 }

Пример построения графика активности за последнюю неделю:

dashboard.html.haml

#placeholder{style: 'width: 600px; height: 250px;'}
- data = Audited.week_activity_chart_data([:create, :update, :destroy], Date.today-1.week+1, Date.today)
- content_for :js do
  :javascript
    $(function() {
      var data = [#{data.map { |day, count| "['#{localize(day)}', #{count}]" }.join(',')}];

      $.plot("#placeholder", [ data ], {
        series: {
          bars: {
            show: true,
            barWidth: 0.6,
            align: "center"
          }
        },
        xaxis: {
          mode: "categories",
          tickLength: 0
        }
      });
    });

Метод Audited.week_activity_chart_data(actions, since, till) возвращает пары [Date, Fixnum] - дата и количество записей о выбранных типах активности. аргумент actions - тип активности пользователя(сейчас в БД сохраняются действия create, update, destroy, report) since, till - экземпляры класса Date. Задают интервал для выборки.

Для примера использовалась библиотека flot (www.flotcharts.org/). Были задействованы компоненты: jquery.flot, jquery.flot.categories.

Something went wrong with that request. Please try again.