19declare(strict_types=1);
23use Psr\Log\LoggerInterface;
38 private readonly
Factory $interaction_factory,
46 return $this->logging_settings->isLoggingEnabled();
51 return $this->logging_settings->isIPLoggingEnabled();
56 return $this->logging_repository->testHasParticipantInteractions(
$ref_id);
61 $this->logging_repository->deleteParticipantInteractionsForTest(
$ref_id);
66 $this->logging_repository->storeTestAdministrationInteraction($interaction);
71 $this->logging_repository->storeQuestionAdministrationInteraction($interaction);
76 $this->logging_repository->storeParticipantInteraction($interaction);
81 $this->logging_repository->storeScoringInteraction($interaction);
86 $this->component_logger->emergency($message, $context);
88 if (!$this->logging_settings->isLoggingEnabled()
89 || !isset($context[
'ref_id'])) {
93 $this->logging_repository->storeError(
99 $this->component_logger->alert($message, $context);
101 if (!$this->logging_settings->isLoggingEnabled()
102 || !isset($context[
'ref_id'])) {
106 $this->logging_repository->storeError(
113 $this->component_logger->critical($message, $context);
115 if (!$this->logging_settings->isLoggingEnabled()
116 || !isset($context[
'ref_id'])) {
120 $this->logging_repository->storeError(
127 if (!$this->logging_settings->isLoggingEnabled()
128 || !isset($context[
'ref_id'])) {
132 $this->logging_repository->storeError(
135 $this->component_logger->error($message, $context);
140 $this->component_logger->warning($message, $context);
145 $this->component_logger->notice($message, $context);
150 $this->component_logger->info($message, $context);
155 $this->component_logger->debug($message, $context);
158 public function log($level,
string|\
Stringable $message, mixed $context = []): void
160 $this->component_logger->log($message, $level, $context);
162 if (!$this->logging_settings->isLoggingEnabled()
164 || !isset($context[
'ref_id'])) {
168 $this->logging_repository->storeError(
175 return $this->component_logger;
180 return $this->interaction_factory;
185 return $this->additional_information;
193 return array_keys(self::LOG_ENTRY_TYPES);
198 $interaction_types = [];
199 foreach (self::LOG_ENTRY_TYPES as $type => $enum_class) {
200 $interaction_types[$type] = array_column($enum_class::cases(),
'value');
202 return $interaction_types;
209 $context [
'question_id'] ??
null,
210 $context[
'administrator'] ??
null,
211 $context[
'participant'] ??
null,
213 $context[
'timestamp'] ?? time(),
log($level, string|\Stringable $message, mixed $context=[])
deleteParticipantInteractionsForTest(int $ref_id)
logQuestionAdministrationInteraction(TestQuestionAdministrationInteraction $interaction)
getAdditionalInformationGenerator()
testHasParticipantInteractions(int $ref_id)
critical(string|\Stringable $message, array $context=[])
logParticipantInteraction(TestParticipantInteraction $interaction)
logScoringInteraction(TestScoringInteraction $interaction)
warning(string|\Stringable $message, array $context=[])
notice(string|\Stringable $message, array $context=[])
error(string|\Stringable $message, array $context=[])
logTestAdministrationInteraction(TestAdministrationInteraction $interaction)
createTestErrorFromContext(array $context, string $message)
__construct(private readonly TestLoggingSettings $logging_settings, private readonly TestLoggingRepository $logging_repository, private readonly Factory $interaction_factory, private readonly AdditionalInformationGenerator $additional_information, private readonly \ilComponentLogger $component_logger,)
info(string|\Stringable $message, array $context=[])
debug(string|\Stringable $message, array $context=[])
alert(string|\Stringable $message, array $context=[])
emergency(string|\Stringable $message, array $context=[])
Component logger with individual log levels by component id.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
@ ERROR_ON_UNDEFINED_INTERACTION