Logstore xAPI

Log storage ::: logstore_xapi
Maintained by David Pesce
Logstore_xapi is a logstore plugin that emits xAPI statements to a Learning Record Store (LRS). Please post all questions, comments, and issues to Github (https://github.com/xAPI-vle/moodle-logstore_xapi).
Latest release:
846 sites
354 downloads
52 fans
Current versions available: 2

What does it do?

As stated on the Github repository, the plugin “emits events from the Moodle Logstore as xAPI statements.” For those that don’t know, the Moodle Logstore is a log of activities within Moodle. When you view a course, complete a quiz, or grade a student, a log of that activity is recorded in the Logstore. The plugin uses these logs to produce xAPI statements and then sends (emits) them to an LRS (Learning Record Store).

How does it work?

The plugin is made up of three parts, an Expander, a Translator, and an Emitter. Every log entry goes through each of these parts in a six-step process before finally reaching the LRS (see below).

  1. The plugin passes the log entry from the logstore_standard_log to the Expander.
  2. The Expander expands the log entry with data from your Moodle database.
  3. The plugin passes the expanded event from step 2 to the Translator.
  4. The Translator translates the expanded event to xAPI/TinCan recipe options.
  5. The plugin passes the translated event from step 4 to the Emitter.
  6. The Emitter constructs the translated event as an xAPI/TinCan statement and emits it to the LRS.

Potential privacy issues

This system sends logging information over the internet. This would include information about the user, links to their profile, and information of courses completed. It would be recommended to have a secure connection between your website and LRS if they are not within a private network.

Screenshots

Screenshot #0

Contributors

David Pesce (Lead maintainer): Developer
jerrett fowler: Developer
Ryan Smith: Developer
Please login to view contributors details and/or to contact them

Comments RSS

Ukázat komentáře
  • Ryan Smith
    středa, 30. května 2018, 16.59
    Hi Mouaici, the entry point is classes/log/store.php#L113 (https://github.com/xAPI-vle/moodle-logstore_xapi/blob/master/classes/log/store.php#L113). In future, please post questions to Github where you'll get a faster response (https://github.com/xAPI-vle/moodle-logstore_xapi/issues).
  • Mouaici Mohamed
    pátek, 8. června 2018, 22.18
    Thank you very much Ryan Smith úsměv
  • Dey Bendifallah
    pátek, 20. července 2018, 13.57
    Hi Ryan,
    VENDOR folder is empty in the new zip file. Is old folder unchanged?
    Thanks
    Dey
  • Ryan Smith
    pátek, 20. července 2018, 18.00
    Hi Dey, my apologies been trying to fix the auto-release and accidentally released a local zip file without the vendor. Please try again.
  • Dey Bendifallah
    pátek, 20. července 2018, 18.05
    Thank you Ryan for this quick fix and for your great work.
  • Peter de Jong
    středa, 8. srpna 2018, 03.17
    Hi Ryan,
    For some reason my plugin is not sending ANYTHING (as far as I can tell) to the Watershed LRS. My Activity Provider is correct because Tin Can Launch works with it. Can you please help me debug, or what could be the issue? Thank you.
  • siddharth jain
    čtvrtek, 14. listopadu 2019, 02.38
    Hi Ryan and everyone,
    I am working behind institute proxy and trying to use this plugin in Moodle but no data is being transmitted to Learning Locker. I can see in the database that the table mdl_logstore_xapi_log is capturing events. I have also tried to send statements to Learning Locker directly which works. I followed the steps available in the website of h2tlabs. Please guide me.
  • Emmanuel Remy
    pondělí, 9. prosince 2019, 13.56
    Hi everyone
    Have you planned to emit events for badges issuing?
    Thanks
  • David Pesce
    úterý, 10. prosince 2019, 10.04
    Hello Emmanuel - we have been maintaining the plugin via Github because Moodle doesn't allow automatic commits to the plugin site. We currently do not have badging events translating to xAPI statements, but we do have instructions on how to add new events. Feel free to submit it as a new issue and maybe even submit a PR if you feel comfortable. Thanks for your interest!
  • kl w
    úterý, 1. června 2021, 14.52

    Hello, i have issue .please help me. thanks


    sudo php /var/www/html/moodle/admin/tool/task/cli/schedule_task.php --execute=\\logstore_xapi\\task\\emit_task --showdebugging
    Execute scheduled task: Emit records to LRS (logstore_xapi\task\emit_task)
    ++ Failed load batch (298 events)
    ++
    * line 89 of /admin/tool/log/store/xapi/classes/log/store.php: call to debugging()
    * line 33 of /admin/tool/log/store/xapi/src/loader/utils/load_batch.php: call to logstore_xapi\log\store->logstore_xapi\log\{closure}()
    * line 26 of /admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php: call to src\loader\utils\load_batch()
    * line ? of unknownfile: call to src\loader\utils\{closure}()
    * line 28 of /admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php: call to array_reduce()
    * line 56 of /admin/tool/log/store/xapi/src/loader/moodle_curl_lrs.php: call to src\loader\utils\load_in_batches()
    * line 24 of /admin/tool/log/store/xapi/src/loader/handler.php: call to src\loader\moodle_curl_lrs\load()
    * line 36 of /admin/tool/log/store/xapi/src/handler.php: call to src\loader\handler()
    * line 138 of /admin/tool/log/store/xapi/classes/log/store.php: call to src\handler()
    * line 96 of /admin/tool/log/store/xapi/classes/task/emit_task.php: call to logstore_xapi\log\store->process_events()
    * line 157 of /admin/tool/task/cli/schedule_task.php: call to logstore_xapi\task\emit_task->execute()
    ++ #0 /var/www/html/moodle/admin/tool/log/store/xapi/src/loader/utils/load_batch.php(27): src\loader\moodle_curl_lrs\{closure}(Array, Array)
    #1 /var/www/html/moodle/admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php(26): src\loader\utils\load_batch(Array, Array, Object(Closure))
    #2 [internal function]: src\loader\utils\{closure}(Array, Array)
    #3 /var/www/html/moodle/admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php(28): array_reduce(Array, Object(Closure), Array)
    #4 /var/www/html/moodle/admin/tool/log/store/xapi/src/loader/moodle_curl_lrs.php(56): src\loader\utils\load_in_batches(Array, Array, Object(Closure))
    #5 /var/www/html/moodle/admin/tool/log/store/xapi/src/loader/handler.php(24): src\loader\moodle_curl_lrs\load(Array, Array)
    #6 /var/www/html/moodle/admin/tool/log/store/xapi/src/handler.php(36): src\loader\handler(Array, Array)
    #7 /var/www/html/moodle/admin/tool/log/store/xapi/classes/log/store.php(138): src\handler(Array, Array)
    #8 /var/www/html/moodle/admin/tool/log/store/xapi/classes/task/emit_task.php(96): logstore_xapi\log\store->process_events(Array)
    #9 /var/www/html/moodle/admin/tool/task/cli/schedule_task.php(157): logstore_xapi\task\emit_task->execute()
    #10 {main} ++
    * line 89 of /admin/tool/log/store/xapi/classes/log/store.php: call to debugging()
    * line 34 of /admin/tool/log/store/xapi/src/loader/utils/load_batch.php: call to logstore_xapi\log\store->logstore_xapi\log\{closure}()
    * line 26 of /admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php: call to src\loader\utils\load_batch()
    * line ? of unknownfile: call to src\loader\utils\{closure}()
    * line 28 of /admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php: call to array_reduce()
    * line 56 of /admin/tool/log/store/xapi/src/loader/moodle_curl_lrs.php: call to src\loader\utils\load_in_batches()
    * line 24 of /admin/tool/log/store/xapi/src/loader/handler.php: call to src\loader\moodle_curl_lrs\load()
    * line 36 of /admin/tool/log/store/xapi/src/handler.php: call to src\loader\handler()
    * line 138 of /admin/tool/log/store/xapi/classes/log/store.php: call to src\handler()
    * line 96 of /admin/tool/log/store/xapi/classes/task/emit_task.php: call to logstore_xapi\log\store->process_events()
    * line 157 of /admin/tool/task/cli/schedule_task.php: call to logstore_xapi\task\emit_task->execute()
    298 event(s) have failed to send to the LRS.

  • Andrea Basto
    pátek, 4. března 2022, 18.05
    Does this plugin run correctly with version 3.9 too ?
  • Tien Nguyen
    středa, 28. září 2022, 09.44
    Hi, this is a really awesome plugin. Does it work for moodle 4.0?
  • David Pesce
    neděle, 2. října 2022, 19.58
    Hello Tien - the plugin does work with 4.0, but it needs some updates in order to work perfectly. Plans are in the works to migrate this repository to another developer who can update and maintain it more frequently.
  • Sean Rugge
    pondělí, 27. února 2023, 21.39
    This plugin is very useful. Are there any plans to include quiz response data and h5p activity response data in xAPI statements?
  • Laura Cray
    středa, 30. října 2024, 19.00
    Great plugin. One question - is it possible to get an answered statement for the Choice and Lesson activities as well?
1 2 3 4
Please login to post comments