Расширить журнал событий для своего модуля

Доброго времени суток. Хотел бы узнать как можно расширить журнал событий для своего модуля? Например в функции модуля добавляю fn_log_event, собираю данные в message

        fn_log_event(
            'example_type',
            'example_action',
            array(
                'message' => $message
            )
        );

Инициализирую хук (my_changes/init.php)

<?php

if (!defined('BOOTSTRAP')) {
    die('Access denied');
}

fn_register_hooks(
    'save_log'
);

Распределяю по собственному типу

function fn_my_changes_save_log($type, $action, $data, $user_id, &$content)
{
  if ($type == 'example_type') {
    $content['message'] = $data['message'];
  }
}

Но данные не записываются, в чем может быть проблема?

Может, кому пригодится.

addon.xml

    <functions>
        <item for="install">fn_my_changes_addon_install</item>
        <item for="uninstall">fn_my_changes_addon_uninstall</item>
    </functions>

func.php

function fn_my_changes_addon_install()

{
   fn_my_changes_add_logs();
}

function fn_my_changes_addon_uninstall()
{
  $setting = Settings::instance()->getSettingDataByName('log_type_my_changes');

  if (!$setting) {
    return;
  }

  Settings::instance()->removeById($setting['object_id']);
}

function fn_my_changes_add_logs()
{
  $setting_name = 'log_type_my_changes';
  $setting = Settings::instance()->getSettingDataByName($setting_name);
  $logging_section = Settings::instance()->getSectionByName('Logging');
  $lang_codes = array_keys(Languages::getAll());

  if ($setting) {
    return;
  }

  $setting = array(
    'name' => $setting_name,
    'section_id' => $logging_section['section_id'],
    'section_tab_id' => 0,
    'type' => 'N',
    'position' => 10,
    'is_global' => 'N',
    'edition_type' => 'ROOT,ULT:VENDOR',
  );

  $descriptions = [];
  foreach ($lang_codes as $lang_code) {
    $descriptions[] = [
      'object_type' => Settings::SETTING_DESCRIPTION,
      'lang_code' => $lang_code,
      'value' => __('log_type_my_changes'),
    ];
  }

  $setting_id = Settings::instance()->update($setting, null, $descriptions, true);
  foreach (fn_my_changes_get_actions() as $position => $variant) {
    $variant_id = Settings::instance()->updateVariant(
      [
        'object_id' => $setting_id,
        'name' => $variant,
        'position' => $position
      ]
    );

    foreach ($lang_codes as $lang_code) {
      $description = [
        'object_id' => $variant_id,
        'object_type' => Settings::VARIANT_DESCRIPTION,
        'lang_code' => $lang_code,
        'value' => __('log_action_' . $variant)
      ];
      Settings::instance()->updateDescription($description);
    }
  }

  Settings::instance()->updateValue($setting_name, '#M#my_action_1=Y&my_action_2=Y', 'Logging');
}

4 лайка