0.0
No commit activity in last 3 years
No release in over 3 years
Audited extention to log audit
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Установка¶ ↑

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.