Skip to content

Monolog-Logging (zmsslim)

ZMS-Anwendungen nutzen einen gemeinsamen PSR-3-Logger auf der globalen App-Klasse: App::$log. Konfiguriert wird er in zmsslim durch BO\Slim\Bootstrap und von allen Slim-Modulen (zmsapi, zmsadmin, zmscitizenapi, …) geteilt.

Das Mindest-Log-Level wird ebenfalls in zmsslim zentral gesetzt: DEBUGLEVEL in der Umgebung → ZMS_DEBUGLEVEL in zmsslim → App::DEBUGLEVEL in jedem Modul für Bootstrap::configureLogger().

Kurzreferenz

ThemaDetail
Logger-PropertyApp::$log (Monolog\Logger, vor Bootstrap null)
UmgebungsvariableDEBUGLEVEL (z. B. in .env, DDEV, Deployment) — Standard INFO
zmsslim-DefineZMS_DEBUGLEVEL — in Application.php aus getenv('DEBUGLEVEL') gesetzt
App-KonstanteApp::DEBUGLEVEL — jedes Modul erbt ZMS_DEBUGLEVEL von \BO\Slim\Application
Effektives Mindest-LevelWas nach dem Bootstrap gilt (App::DEBUGLEVEL zur Laufzeit)
Web-Bootstrap\BO\Slim\Bootstrap::init()
CLI / Cron\BO\Slim\Bootstrap::ensureLogger() oder initForCli() über script_bootstrap.php
AusgabeJSON-Zeilen auf stderr (Web) oder stdout (CLI/Cron)
Nicht verwendenPHP error_log(), print_r(), echo für Anwendungs-Logs

Zentrales Debug-Level (ZMS_DEBUGLEVEL)

zmsslim steuert das Debug-Level für alle Slim-Module. In Produktion gibt es kein separates Log-Level pro Modul; eine Umgebungsvariable gilt überall, wo über \BO\Slim\Bootstrap gebootstrapped wird.

flowchart LR
  env["DEBUGLEVEL Env"]
  zms["ZMS_DEBUGLEVEL\n(zmsslim Application.php)"]
  app["App::DEBUGLEVEL\n(jedes Modul App)"]
  boot["Bootstrap::configureLogger()"]
  mono["Monolog-Mindest-Level\n(App::$log)"]

  env --> zms --> app --> boot --> mono
  1. Betrieb setzt DEBUGLEVEL (z. B. INFO oder WARNING) in .env, DDEV oder Deployment.
  2. Beim Laden von zmsslim/src/Slim/Application.php wird ZMS_DEBUGLEVEL aus dieser Env-Variable definiert (Standard INFO, falls nicht gesetzt).
  3. \BO\Slim\Application deklariert const DEBUGLEVEL = ZMS_DEBUGLEVEL. Jedes Modul mit class App extends \BO\Zmsapi\Application (usw.) erbt dieselbe Konstante, sofern nicht lokal überschrieben.
  4. Beim Bootstrap rufen Bootstrap::init() / ensureLogger() / initForCli() configureLogger(App::DEBUGLEVEL, App::IDENTIFIER) auf. Das Level ist gemeinsam; in den JSON-Logs unterscheiden sich nur App::IDENTIFIER und App::MODULE_NAME pro Modul.

ZMS_DEBUGLEVEL ist damit die zentrale zmsslim-Vorgabe, wie ausführlich zmsapi, zmsadmin, zmscitizenapi, zmsmessaging, Cron-Skripte und die anderen Slim-Apps loggen.

Konfiguration: DEBUGLEVEL in der Umgebung (kein separates Env ZMS_DEBUGLEVEL).

Zur Laufzeit im Code: App::DEBUGLEVEL (basierend auf ZMS_DEBUGLEVEL).

Seltene Ausnahme: const DEBUGLEVEL = 'WARNING'; in einem Modul-config.php nur für lokale Tests — nicht in gemeinsamen Deployment-Configs.

CLI-Fallback: ist App::DEBUGLEVEL noch nicht definiert, liest Bootstrap::initForCli() direkt getenv('DEBUGLEVEL').

Log-Level

App::DEBUGLEVEL (aus ZMS_DEBUGLEVEL) legt das Mindest-Level für Monolog fest. Nachrichten darunter werden verworfen.

DEBUGLEVEL Env / KonstanteMonolog-KonstanteTypische Nutzung in ZMS
DEBUGLogger::DEBUGAusführliche Diagnose (Mail-Payloads, Cache)
INFOLogger::INFONormaler Betrieb (Login, Cron-Fortschritt, Cache-Treffer)
NOTICELogger::NOTICEBeachtenswert, aber erwartbar
WARNINGLogger::WARNINGBehebbare Probleme (Rate Limits, übersprungene Entitäten)
ERRORLogger::ERRORFehler mit Handlungsbedarf
CRITICALLogger::CRITICALSchwere Fehler (z. B. Twig-Exception-Handler)
ALERTLogger::ALERTSelten; Monolog-Skala
EMERGENCYLogger::EMERGENCYSelten; Monolog-Skala

Die Zuordnung steht in zmsslim/src/Slim/Bootstrap.php ($debuglevels, parseDebugLevel()).

Beispiel-Konfiguration

bash
# .env / DDEV / Deployment — gilt für alle Slim-Module über zmsslim
DEBUGLEVEL=INFO

Definition in zmsslim/src/Slim/Application.php:

php
define('ZMS_DEBUGLEVEL', getenv('DEBUGLEVEL') ? getenv('DEBUGLEVEL') : 'INFO');
const DEBUGLEVEL = ZMS_DEBUGLEVEL;

Ungültige Werte fallen in Bootstrap::parseDebugLevel() auf DEBUG zurück.

HTTP-Request-Logging pro Modul

Anders als DEBUGLEVEL (ein Wert für alle Slim-Module) wird HTTP-Request-/Response-Logging pro Modul über ZMS_<MODUL>_LOGGER_*-Umgebungsvariablen konfiguriert — dasselbe Namensschema wie ZMS_ADMIN_TWIG_CACHE, ZMS_API_TWIG_CACHE usw.

Module mit RequestLoggingMiddleware (über BO\Slim\Helper\ModuleLoggerInitializer oder eigenes Bootstrap) schreiben pro verarbeitetem Request eine strukturierte HTTP Request-Zeile über BO\Slim\LoggerService::logRequest()App::$log.

Nur Request-Log-Drosselung

…_LOGGER_MAX_REQUESTS und …_LOGGER_MAX_ERROR_REQUESTS sind Access-Log-Drosseln. Sie begrenzen, wie viele HTTP Request-Zeilen LoggerService::logRequest() pro Zeitfenster schreibt. Sie begrenzen kein allgemeines Anwendungs-Logging.

Logging-PfadDurch LOGGER_MAX_* gedrosselt?Gesteuert über
HTTP Request (Status < 400)Ja — …_LOGGER_MAX_REQUESTSEnv pro Modul + …_LOGGER_CACHE_TTL
HTTP Request (Status ≥ 400)Nur wenn …_LOGGER_MAX_ERROR_REQUESTS > 0Env pro Modul (Standard 0 = unbegrenzt)
LoggerService::logError() (Exceptions)Nein
LoggerService::logWarning() / logInfo()Nein
Direkte App::$log->info() / warning() / error() im App-CodeNeinDEBUGLEVEL

Kurz: DEBUGLEVEL steuert global die Ausführlichkeit von Anwendungs-Logs; LOGGER_MAX_* verhindert nur, dass hochfrequente Module (v. a. Calldisplay und Ticketdrucker) den Log mit routinemäßigen erfolgreichen Requests überfluten.

Erfolgreiche und fehlgeschlagene Request-Logs nutzen getrennte Zähler und dieselbe Fensterlänge (…_LOGGER_CACHE_TTL, Standard 60 Sekunden). Eine gedrosselte erfolgreiche Poll-Antwort blockiert nicht das spätere Loggen eines 500ers desselben Moduls.

ModulEnv-PräfixTypischer Traffic
zmscitizenapiZMS_CITIZENAPI_LOGGER_*Öffentliche Buchungs-API
zmsapiZMS_API_LOGGER_*Interne REST-API
zmsadminZMS_ADMIN_LOGGER_*Mitarbeiter-UI
zmscalldisplayZMS_CALLDISPLAY_LOGGER_*Aufrufmonitore (häufiges Polling)
zmsstatisticZMS_STATISTIC_LOGGER_*Statistik-UI
zmsticketprinterZMS_TICKETPRINTER_LOGGER_*Ticketdrucker (häufiges Polling)

LoggerService-Variablen

VariableStandardRolle
…_LOGGER_MAX_REQUESTS1000Max. erfolgreiche HTTP Request-Zeilen (Status < 400) pro Rate-Limit-Fenster (CACHE_TTL)
…_LOGGER_MAX_ERROR_REQUESTS0Max. fehlgeschlagene HTTP Request-Zeilen (Status ≥ 400) pro Fenster; 0 = unbegrenzt
…_LOGGER_RESPONSE_LENGTH1048576Max. Response-Body-Bytes bei Fehler-Logs
…_LOGGER_STACK_LINES20Stacktrace-Zeilen bei geloggten Exceptions
…_LOGGER_MESSAGE_SIZE8192Max. Größe einer einzelnen Log-Nachricht
…_LOGGER_CACHE_TTL60Rate-Limit-Fenster in Sekunden (nutzt CACHE_DIR)
…_LOGGER_MAX_RETRIES3Cache-Lock-Wiederholungen für Rate Limiting
…_LOGGER_BACKOFF_MIN / …_LOGGER_BACKOFF_MAX100 / 1000Backoff zwischen Wiederholungen (ms)
…_LOGGER_LOCK_TIMEOUT5Cache-Lock-Timeout (Sekunden)

Vollständige Beispiele stehen in .ddev/.env.template bzw. .devcontainer/.env.template.

Feinabstimmung bei hoher Request-Frequenz

zmscalldisplay und zmsticketprinter sind Besonderheiten: Jeder Monitor bzw. Ticketdrucker pollt typischerweise alle paar Sekunden den Server. Mit Standard LOGGER_MAX_REQUESTS=1000 erzeugen schon wenige Geräte viel repetitive Log-Menge — auch bei DEBUGLEVEL=INFO.

Für diese Module empfiehlt sich ein niedrigerer Wert für ZMS_CALLDISPLAY_LOGGER_MAX_REQUESTS und/oder ZMS_TICKETPRINTER_LOGGER_MAX_REQUESTS, damit Routine-Polls den Logstrom nicht dominieren. Admin-, API- und Citizen-Module können meist bei den Defaults bleiben.

bash
# Beispiel: Poll-Logging für Display/Drucker begrenzen, andere Module unverändert
ZMS_CALLDISPLAY_LOGGER_MAX_REQUESTS=120
ZMS_TICKETPRINTER_LOGGER_MAX_REQUESTS=120

# Andere Module weiterhin mit Template-Default (1000)
ZMS_ADMIN_LOGGER_MAX_REQUESTS=1000
ZMS_API_LOGGER_MAX_REQUESTS=1000

Ein niedrigeres …_LOGGER_MAX_REQUESTS drosselt nur erfolgreiche HTTP Request-Zeilen (Monolog info, Status < 400). Fehlgeschlagene Requests (Status ≥ 400, Monolog error) nutzen …_LOGGER_MAX_ERROR_REQUESTS; Standard 0 bedeutet kein Limit.

Diese Variablen betreffen keine Exceptions, Warnungen oder Info-Meldungen aus anderen LoggerService-Methoden und keine direkten App::$log->…-Aufrufe im restlichen Code.

Logging im Code

Nach bootstrap.php oder script_bootstrap.php:

php
\App::$log->info('Login successful', ['account' => $accountName]);
\App::$log->warning('Could not remove availability', ['availabilityId' => $id]);
\App::$log->error('SQL import failed', ['exception' => $e->getMessage()]);

PSR-3-Methoden in Kleinbuchstaben: debug, info, notice, warning, error, critical, alert, emergency.

Kontext-Arrays

Strukturierten Kontext (zweites Argument) bevorzugen. Zusätzliche Felder u. a.: application, module, bei Cron cron / cron_name (ZMS_CRON_LOG, ZMS_CRON_NAME).

Bibliotheken ohne Bootstrap

Optional nur mit Prüfung:

php
if (class_exists('\App', false) && isset(\App::$log)) {
    \App::$log->error('…', ['context' => $value]);
}

Log-Inventar im Repository

Die folgende Tabelle wird automatisch aus App::$log->… in Modul-PHP-Quellen erzeugt (ohne vendor/ und tests/). Lokal aktualisieren:

bash
cd docs && npm run docs:log-inventory

Aktualisierung auch bei npm run docs:dev / docs:build. Nutze die Filter, die Suche oder Klick auf eine Spaltenüberschrift zum Sortieren (auf-/absteigend umschalten).

Generated: · 185 call(s) · Production PHP only (module src/cron/bin). Excludes vendor, tests, and test_mysql-style dev scripts under Importer/.

Showing 185 of 185 entries · sorted by module (asc)

zmsadmininfoLogin successfulzmsadmin/src/Zmsadmin/Index.php:87
zmsadmininfoLogin failed - invalid credentialszmsadmin/src/Zmsadmin/Index.php:105
zmsadmininfoUser already logged in - reusing existing sessionzmsadmin/src/Zmsadmin/Index.php:114
zmsadmininfoLogin failed - other errorzmsadmin/src/Zmsadmin/Index.php:130
zmsadmininfoUser logged outzmsadmin/src/Zmsadmin/Logout.php:34
zmsadminerrorOIDC Login errorzmsadmin/src/Zmsadmin/Oidc.php:52
zmsapiinfoDeleted availabilityzmsapi/src/Zmsapi/AvailabilityDelete.php:36
zmsapiinfoUpdated availabilityzmsapi/src/Zmsapi/AvailabilityListUpdate.php:112
zmsapiinfoCreated new availabilityzmsapi/src/Zmsapi/AvailabilityListUpdate.php:126
zmsapiwarningAvailabilityListUpdateFailed: Validation failedzmsapi/src/Zmsapi/AvailabilityListUpdate.php:57
zmsapiwarningNo input data providedzmsapi/src/Zmsapi/AvailabilityListUpdate.php:231
zmsapiwarningInvalid availabilityListzmsapi/src/Zmsapi/AvailabilityListUpdate.php:236
zmsapiwarningMissing scope id in availabilityzmsapi/src/Zmsapi/AvailabilityListUpdate.php:255
zmsapiwarningInconsistent scopes in availability listzmsapi/src/Zmsapi/AvailabilityListUpdate.php:261
zmsapicritical(dynamic)zmsapi/src/Zmsapi/Helper/ErrorHandler.php:69
zmsapidebugSend mailzmsapi/src/Zmsapi/ProcessConfirmationMail.php:64
zmsapidebugSend mailzmsapi/src/Zmsapi/ProcessDeleteMail.php:65
zmsapierrorExpected ProcessListCollection, received different typezmsapi/src/Zmsapi/ProcessListByClusterAndDate.php:87
zmsapidebugSend mailzmsapi/src/Zmsapi/ProcessPreconfirmationMail.php:62
zmsapiinfoProcess redirectedzmsapi/src/Zmsapi/ProcessRedirect.php:45
zmsapiinfoProcess parkedzmsapi/src/Zmsapi/WorkstationProcessParked.php:46
zmscitizenapiinfoMethod not allowedzmscitizenapi/bootstrap.php:96
zmscitizenapiwarningInvalid Office skippedzmscitizenapi/src/Zmscitizenapi/Models/Collections/OfficeList.php:25
zmscitizenapiwarningInvalid OfficeServiceRelation skippedzmscitizenapi/src/Zmscitizenapi/Models/Collections/OfficeServiceRelationList.php:26
zmscitizenapiwarningInvalid Service skippedzmscitizenapi/src/Zmscitizenapi/Models/Collections/ServiceList.php:25
zmscitizenapiwarningInvalid ThinnedScope skippedzmscitizenapi/src/Zmscitizenapi/Models/Collections/ThinnedScopeList.php:25
zmsclientinfoAuth session setzmsclient/src/Zmsclient/Auth.php:25
zmsclientinfoAuth session removedzmsclient/src/Zmsclient/Auth.php:61
zmsclienterrorOIDC Login invalid statezmsclient/src/Zmsclient/OidcHandler.php:61
zmsclienterrorOIDC Login workstation errorzmsclient/src/Zmsclient/OidcHandler.php:120
zmsclientinfoOIDC Login state validationzmsclient/src/Zmsclient/OidcHandler.php:51
zmsclientinfoOIDC Login workstation accesszmsclient/src/Zmsclient/OidcHandler.php:91
zmsclientinfoOIDC Login department checkzmsclient/src/Zmsclient/OidcHandler.php:103
zmsdberrorSQL import failedzmsdb/src/Zmsdb/Cli/Db.php:44
zmsdbinfoImporting SQL filezmsdb/src/Zmsdb/Cli/Db.php:32
zmsdbinfoSQL import finishedzmsdb/src/Zmsdb/Cli/Db.php:59
zmsdbinfoUsing database connectionzmsdb/src/Zmsdb/Cli/Db.php:87
zmsdbinfoPending migrationzmsdb/src/Zmsdb/Cli/Db.php:127
zmsdbinfoMigration check finishedzmsdb/src/Zmsdb/Cli/Db.php:138
zmsdbinfoCluster cache setzmsdb/src/Zmsdb/Cluster.php:40
zmsdbinfoCluster cache invalidatedzmsdb/src/Zmsdb/Cluster.php:352
zmsdbinfoDepartment cache setzmsdb/src/Zmsdb/Department.php:35
zmsdbinfoDepartment cache invalidatedzmsdb/src/Zmsdb/Department.php:335
zmsdberrorAnonymization process failedzmsdb/src/Zmsdb/Helper/AnonymizeStatisticDataByCron.php:53
zmsdbinfoUsing retention period from admin system configzmsdb/src/Zmsdb/Helper/AnonymizeStatisticDataByCron.php:25
zmsdbinfoUsing default retention periodzmsdb/src/Zmsdb/Helper/AnonymizeStatisticDataByCron.php:30
zmsdbinfoBeginning anonymizationzmsdb/src/Zmsdb/Helper/AnonymizeStatisticDataByCron.php:40
zmsdbinfoAnonymization process completed successfullyzmsdb/src/Zmsdb/Helper/AnonymizeStatisticDataByCron.php:49
zmsdbnoticeAnonymization dry run — no database changeszmsdb/src/Zmsdb/Helper/AnonymizeStatisticDataByCron.php:58
zmsdbinfoDeleting quota older than given periodzmsdb/src/Zmsdb/Helper/ApiQuotaDeleteByCron.php:17
zmsdbinfoProcessing quotazmsdb/src/Zmsdb/Helper/ApiQuotaDeleteByCron.php:29
zmsdbinfoNo expired quota was foundzmsdb/src/Zmsdb/Helper/ApiQuotaDeleteByCron.php:36
zmsdbinfoQuota successfully removedzmsdb/src/Zmsdb/Helper/ApiQuotaDeleteByCron.php:47
zmsdbinfoKeep quotazmsdb/src/Zmsdb/Helper/ApiQuotaDeleteByCron.php:53
zmsdbwarningCould not remove quotazmsdb/src/Zmsdb/Helper/ApiQuotaDeleteByCron.php:50
zmsdbinfoReading availability listzmsdb/src/Zmsdb/Helper/AvailabilityDeleteByCron.php:25
zmsdbinfoWould remove availabilityzmsdb/src/Zmsdb/Helper/AvailabilityDeleteByCron.php:31
zmsdbinfoAvailability successfully removedzmsdb/src/Zmsdb/Helper/AvailabilityDeleteByCron.php:40
zmsdbwarningCould not remove availabilityzmsdb/src/Zmsdb/Helper/AvailabilityDeleteByCron.php:43
zmsdbinfoCalculateDailyWaitingStatisticByCron startedzmsdb/src/Zmsdb/Helper/CalculateDailyWaitingStatisticByCron.php:19
zmsdbinfoCalculateDailyWaitingStatisticByCron finishedzmsdb/src/Zmsdb/Helper/CalculateDailyWaitingStatisticByCron.php:25
zmsdbinfo[DRY RUN] update scope statisticszmsdb/src/Zmsdb/Helper/CalculateDailyWaitingStatisticByCron.php:195
zmsdbinfo(expression)zmsdb/src/Zmsdb/Helper/CalculateSlots.php:29
zmsdbinfo(expression)zmsdb/src/Zmsdb/Helper/CalculateSlots.php:42
zmsdbinfo(expression)zmsdb/src/Zmsdb/Helper/CleanProcessArchivedToday.php:24
zmsdbinfoExecuting archived process cleanup with commitzmsdb/src/Zmsdb/Helper/CleanProcessArchivedToday.php:32
zmsdbinfoArchived process cleanup completedzmsdb/src/Zmsdb/Helper/CleanProcessArchivedToday.php:34
zmsdbinfo(expression)zmsdb/src/Zmsdb/Helper/EventLogCleanUpByCron.php:28
zmsdbinfo(expression)zmsdb/src/Zmsdb/Helper/LogCleanUp.php:29
zmsdbinfoStarting log cleanup processzmsdb/src/Zmsdb/Helper/LogCleanUp.php:35
zmsdbinfoLog cleanup config loadedzmsdb/src/Zmsdb/Helper/LogCleanUp.php:40
zmsdbinfoExecuting log cleanup with commitzmsdb/src/Zmsdb/Helper/LogCleanUp.php:47
zmsdbinfoLog cleanup completedzmsdb/src/Zmsdb/Helper/LogCleanUp.php:49
zmsdbinfoWorkstation logoutzmsdb/src/Zmsdb/Helper/LogoutWorkstations.php:32
zmsdbinfo(expression)zmsdb/src/Zmsdb/Helper/ReservedDataDeleteByCron.php:81
zmsdbinfo(expression)zmsdb/src/Zmsdb/Helper/SendMailReminder.php:53
zmsdbinfoSend process list of current day to scope adminzmsdb/src/Zmsdb/Helper/SendProcessListToScopeAdmin.php:20
zmsdbinfoProcessing scopezmsdb/src/Zmsdb/Helper/SendProcessListToScopeAdmin.php:35
zmsdbinfoSend processList to scope adminzmsdb/src/Zmsdb/Helper/SendProcessListToScopeAdmin.php:47
zmsdbwarningProcesslist empty for scopezmsdb/src/Zmsdb/Helper/SendProcessListToScopeAdmin.php:52
zmsdbwarningMail writing in queue not successfulzmsdb/src/Zmsdb/Helper/SendProcessListToScopeAdmin.php:62
zmsdbinfoDeleting expired ticketprinter older than 30 dayszmsdb/src/Zmsdb/Helper/TicketprinterDeleteByCron.php:20
zmsdbinfoProcessing ticketprinterzmsdb/src/Zmsdb/Helper/TicketprinterDeleteByCron.php:31
zmsdbinfoTicketprinter successfully removedzmsdb/src/Zmsdb/Helper/TicketprinterDeleteByCron.php:43
zmsdbwarningCould not remove ticketprinterzmsdb/src/Zmsdb/Helper/TicketprinterDeleteByCron.php:45
zmsdberrorError during log cleanupzmsdb/src/Zmsdb/Log.php:247
zmsdberrorFreeProcesszmsdb/src/Zmsdb/Query/SlotList.php:220
zmsdbinfoScope cache setzmsdb/src/Zmsdb/Scope.php:41
zmsdbinfoScope cache setzmsdb/src/Zmsdb/Scope.php:136
zmsdbinfoScope cache setzmsdb/src/Zmsdb/Scope.php:187
zmsdbinfoScope cache setzmsdb/src/Zmsdb/Scope.php:254
zmsdbinfoScope cache setzmsdb/src/Zmsdb/Scope.php:334
zmsdbinfoScope cache invalidatedzmsdb/src/Zmsdb/Scope.php:729
zmsdberrorFailed to optimize table with query: $query. Error: zmsdb/src/Zmsdb/Slot.php:501
zmsdbinfoavailability: zmsdb/src/Zmsdb/Slot.php:223
zmsdbinfoUseraccount cache hitzmsdb/src/Zmsdb/Useraccount.php:282
zmsdbinfoUseraccount cache setzmsdb/src/Zmsdb/Useraccount.php:305
zmsdbinfoUseraccount list cache hitzmsdb/src/Zmsdb/Useraccount.php:343
zmsdbinfoUseraccount list cache setzmsdb/src/Zmsdb/Useraccount.php:384
zmsdbinfoUseraccount department list cache hitzmsdb/src/Zmsdb/Useraccount.php:606
zmsdbinfoUseraccount department list cache setzmsdb/src/Zmsdb/Useraccount.php:648
zmsdbinfo(expression)zmsdb/src/Zmsdb/Useraccount.php:869
zmsdbinfo(expression)zmsdb/src/Zmsdb/Useraccount.php:883
zmsdbinfoUseraccount role list cache hitzmsdb/src/Zmsdb/Useraccount.php:1035
zmsdbinfoUseraccount role list cache setzmsdb/src/Zmsdb/Useraccount.php:1065
zmsdbinfoUseraccount role and department list cache hitzmsdb/src/Zmsdb/Useraccount.php:1098
zmsdbinfoUseraccount role and department list cache setzmsdb/src/Zmsdb/Useraccount.php:1132
zmsdbinfoUseraccount caches invalidated after mutationzmsdb/src/Zmsdb/Useraccount.php:1183
zmsdbwarninguser_role update on useraccount save failedzmsdb/src/Zmsdb/Useraccount.php:786
zmsdldberrorSpecified rollback day does not exist in backupszmsdldb/bin/dldb-helpers.php:94
zmsdldberrorFailed to rollback filezmsdldb/bin/dldb-helpers.php:105
zmsdldberrorFailed to backup filezmsdldb/bin/dldb-helpers.php:152
zmsdldbinfoRetention period set in admin system configzmsdldb/bin/dldb-helpers.php:48
zmsdldbinfoUsing default retention periodzmsdldb/bin/dldb-helpers.php:55
zmsdldbinfoRollback day set in admin system configzmsdldb/bin/dldb-helpers.php:65
zmsdldbinfoUsing default no rollbackzmsdldb/bin/dldb-helpers.php:69
zmsdldbinfoRollback requestedzmsdldb/bin/dldb-helpers.php:79
zmsdldbinfoRolling back using backupzmsdldb/bin/dldb-helpers.php:99
zmsdldbinfoRolled back filezmsdldb/bin/dldb-helpers.php:108
zmsdldbinfoChecking if backup is requiredzmsdldb/bin/dldb-helpers.php:117
zmsdldbinfoBackup is requiredzmsdldb/bin/dldb-helpers.php:141
zmsdldbinfoBackup createdzmsdldb/bin/dldb-helpers.php:155
zmsdldbinfoFetching the backup retention periodzmsdldb/bin/dldb-helpers.php:163
zmsdldbinfoDeleted old backupzmsdldb/bin/dldb-helpers.php:177
zmsdldbwarningInvalid retention value, falling back to 7 dayszmsdldb/bin/dldb-helpers.php:51
zmsdldbwarningNo backups directoryzmsdldb/bin/dldb-helpers.php:84
zmsdldberrorDLDB access locale missingzmsdldb/src/Zmsdldb/AbstractAccess.php:146
zmsdldbwarningUnexpected array in service meta hash during importzmsdldb/src/Zmsdldb/Importer/MySQL/Entity/Service.php:276
zmsmessagingdebugMail send detailszmsmessaging/bin/mail_queue.php:34
zmsmessagingerrorMail queue transmission errorzmsmessaging/bin/mail_queue.php:22
zmsmessaginginfoMail sent from queuezmsmessaging/bin/mail_queue.php:28
zmsmessagingnoticeUse with --send to send emails.zmsmessaging/bin/mail_queue.php:14
zmsmessagingnoticeMail queue emptyzmsmessaging/bin/mail_queue.php:20
zmsmessagingdebug(expression)zmsmessaging/src/Zmsmessaging/BaseController.php:174
zmsmessaginginfo(expression)zmsmessaging/src/Zmsmessaging/BaseController.php:176
zmsmessagingwarning(expression)zmsmessaging/src/Zmsmessaging/BaseController.php:69
zmsmessaginginfoMail processed from queuezmsmessaging/src/Zmsmessaging/Mail.php:167
zmsmessaginginfoMail queue batch finishedzmsmessaging/src/Zmsmessaging/Mail.php:201
zmsmessagingwarning(expression)zmsmessaging/src/Zmsmessaging/Mail.php:227
zmsmessagingwarning(expression)zmsmessaging/src/Zmsmessaging/Mail.php:231
zmsslimwarningCould not write router cache filezmsslim/src/Slim/Bootstrap.php:313
zmsslimerrorFailed to fetch changelog: zmsslim/src/Slim/Helper/BaseChangelogHelper.php:31
zmsslimdynamic(via $level)zmsslim/src/Slim/LoggerService.php:245
zmsslimerror(expression)zmsslim/src/Slim/LoggerService.php:187
zmssliminfo(expression)zmsslim/src/Slim/LoggerService.php:197
zmsslimnoticeCache not available for rate limitingzmsslim/src/Slim/LoggerService.php:107
zmsslimwarningRate limiting errorzmsslim/src/Slim/LoggerService.php:147
zmsslimwarning(expression)zmsslim/src/Slim/LoggerService.php:192
zmsslimerrorOIDC login failedzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:57
zmsslimerrorToken validation failedzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:106
zmsslimerrorToken validation failedzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:114
zmsslimerrorToken validation failedzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:122
zmsslimerrorToken validation failedzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:140
zmsslimerrorToken validation failedzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:150
zmsslimerrorToken validation failedzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:161
zmsslimerrorToken validation failedzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:175
zmsslimerrorToken validation failedzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:190
zmsslimerrorFailed to get access tokenzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:229
zmssliminfoOIDC login attemptzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:30
zmssliminfoClearing existing sessionzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:42
zmssliminfoOIDC login successfulzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:52
zmssliminfoValidating OIDC tokenzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:98
zmssliminfoToken validation successfulzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:200
zmssliminfoGetting access tokenzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:216
zmssliminfoAccess token obtainedzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:223
zmssliminfoWriting token to sessionzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:244
zmssliminfoDeleting sessionzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:258
zmssliminfoReading token from sessionzmsslim/src/Slim/Middleware/OAuth/KeycloakInstance.php:271
zmsslimerrorUnknown OIDC provider requestedzmsslim/src/Slim/Middleware/OAuthMiddleware.php:71
zmsslimerror[Human zmsslim/src/Slim/Middleware/Session/SessionHuman.php:60
zmsslimerror(dynamic)zmsslim/src/Slim/Middleware/Session/SessionHuman.php:66
zmsslimnotice(dynamic)zmsslim/src/Slim/Middleware/Session/SessionHuman.php:44
zmsslimnotice(dynamic)zmsslim/src/Slim/Middleware/Session/SessionHuman.php:51
zmsslimcriticalPHP-Exception #{$extendedInfo[zmsslim/src/Slim/TwigExceptionHandler.php:76
zmsslimcritical(dynamic)zmsslim/src/Slim/TwigExceptionHandler.php:78
zmsslimcriticalNot catchable exception while rendering error pagezmsslim/src/Slim/TwigExceptionHandler.php:97
zmsstatisticwarningFailed to fetch /workstation/ for extendedInfozmsstatistic/src/Zmsstatistic/Helper/TwigExceptionHandler.php:26
zmsstatisticinfoLogin successfulzmsstatistic/src/Zmsstatistic/Index.php:94
zmsstatisticinfoLogin failed - invalid credentialszmsstatistic/src/Zmsstatistic/Index.php:112
zmsstatisticinfoUser already logged in - reusing existing sessionzmsstatistic/src/Zmsstatistic/Index.php:121
zmsstatisticinfoLogin failed - other errorzmsstatistic/src/Zmsstatistic/Index.php:137
zmsstatisticinfoUser logged outzmsstatistic/src/Zmsstatistic/Logout.php:41
zmsstatisticerrorOIDC Login errorzmsstatistic/src/Zmsstatistic/Oidc.php:52
zmsticketprinterdebugHOMEURLzmsticketprinter/src/Zmsticketprinter/Helper/HomeUrl.php:34
zmsticketprinterwarningError in getByHash, creating new organisation hashzmsticketprinter/src/Zmsticketprinter/Helper/Ticketprinter.php:41

Verwandtes

Verwandter Code

  • zmsslim/src/Slim/Application.phpZMS_DEBUGLEVEL, DEBUGLEVEL, public static $log
  • zmsslim/src/Slim/Bootstrap.php — Logger-Konfiguration
  • zmsslim/src/Slim/LoggerService.php — HTTP-Request-Logging, Rate Limiting
  • zmsslim/src/Slim/Helper/ModuleLoggerInitializer.php — Logger-Env und Middleware pro Modul
  • zmsslim/README.md — Slim-Bootstrap-Übersicht