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
2025
 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.