我为 Moodle 3.10 编写了自己的身份验证插件。我只想在登录失败时添加日志。像这样的东西:
$log->info('User with username XYZ could not login.');
如何在 Moodle 中执行此操作?
我在 https://docs.moodle.org/310/en/Logs 检查了 Moodle 中的开发人员文档,但它只是说明了在哪里可以找到日志。不是如何添加日志
Events API 在日志中创建一个条目
存在登录失败事件
$eventdata = ['other' =>
['username' => 'unknown',
'reason' => AUTH_LOGIN_XXX]
];
$event = \core\event\user_login_failed::create($eventdata);
$event->trigger();
将
AUTH_LOGIN_XXX
替换为这些常数之一
/** Can not login because user does not exist. */
define('AUTH_LOGIN_NOUSER', 1);
/** Can not login because user is suspended. */
define('AUTH_LOGIN_SUSPENDED', 2);
/** Can not login, most probably password did not match. */
define('AUTH_LOGIN_FAILED', 3);
/** Can not login because user is locked out. */
define('AUTH_LOGIN_LOCKOUT', 4);
/** Can not login becauser user is not authorised. */
define('AUTH_LOGIN_UNAUTHORISED', 5);
或者您可以创建自己的活动,设置起来非常简单
https://docs.moodle.org/dev/Events_API
基本上,事件类存储在
/yourpluginname/classes/event/event_name.php
在现有的 Moodle 代码中搜索
extends \core\event\base
以获取示例