Logstore xAPI

Maintained by David Pesce
Logstore xAPI captures Moodle activity and sends it to a Learning Record Store (LRS) as xAPI (Tin Can) statements. Once configured, events like course views, quiz attempts, assignment submissions, and forum posts are automatically recorded in your LRS — no changes to your courses required.
Price option: Free

Supports Moodle 4.1-5.2 See all versions
Latest release: 2 days ago
Installations: 904
Downloads (last 90 days): 413

Frankenstyle name: logstore_xapi
Log storage

Comments

Comments are no longer open for new posts. Existing comments remain available to read.

Are there any plans to release a plugin version compatible with Moodle 5.0 and 5.1?
Moodle version 4.5 is not compatible with this plugin anymore. Any news on updating the plugin or an alternative method to connect to a Learning Record Store.
Great plugin. One question - is it possible to get an answered statement for the Choice and Lesson activities as well?
This plugin is very useful. Are there any plans to include quiz response data and h5p activity response data in xAPI statements?
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.
Hi, this is a really awesome plugin. Does it work for moodle 4.0?
Does this plugin run correctly with version 3.9 too ?

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.
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!
Hi everyone
Have you planned to emit events for badges issuing?
Thanks
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.
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.
Thank you Ryan for this quick fix and for your great work.
Hi Dey, my apologies been trying to fix the auto-release and accidentally released a local zip file without the vendor. Please try again.
Hi Ryan,
VENDOR folder is empty in the new zip file. Is old folder unchanged?
Thanks
Dey