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 (zmsbackend, 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 zmsbackend, 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
zmsbackendZMS_BACKEND_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_BACKEND_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: · 186 call(s) · Production PHP only (module src/cron/bin). Excludes vendor, tests, and test_mysql-style dev scripts under Importer/.

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

zmsadmininfoLogin successfulzmsadmin/src/Zmsadmin/Index.php:100
zmsadmininfoLogin failed - invalid credentialszmsadmin/src/Zmsadmin/Index.php:118
zmsadmininfoUser already logged in - reusing existing sessionzmsadmin/src/Zmsadmin/Index.php:127
zmsadmininfoLogin failed - other errorzmsadmin/src/Zmsadmin/Index.php:143
zmsadmininfoUser logged outzmsadmin/src/Zmsadmin/Logout.php:34
zmsadminerrorOIDC Login errorzmsadmin/src/Zmsadmin/Oidc.php:57
zmsbackendinfoDeleted availabilityzmsbackend/src/Zmsbackend/Availability/Api/AvailabilityDelete.php:36
zmsbackendinfoUpdated availabilityzmsbackend/src/Zmsbackend/Availability/Api/AvailabilityListUpdate.php:112
zmsbackendinfoCreated new availabilityzmsbackend/src/Zmsbackend/Availability/Api/AvailabilityListUpdate.php:126
zmsbackendwarningAvailabilityListUpdateFailed: Validation failedzmsbackend/src/Zmsbackend/Availability/Api/AvailabilityListUpdate.php:57
zmsbackendwarningNo input data providedzmsbackend/src/Zmsbackend/Availability/Api/AvailabilityListUpdate.php:231
zmsbackendwarningInvalid availabilityListzmsbackend/src/Zmsbackend/Availability/Api/AvailabilityListUpdate.php:236
zmsbackendwarningMissing scope id in availabilityzmsbackend/src/Zmsbackend/Availability/Api/AvailabilityListUpdate.php:255
zmsbackendwarningInconsistent scopes in availability listzmsbackend/src/Zmsbackend/Availability/Api/AvailabilityListUpdate.php:261
zmsbackenderrorSQL import failedzmsbackend/src/Zmsbackend/Cli/Db.php:248
zmsbackendinfoImporting SQL filezmsbackend/src/Zmsbackend/Cli/Db.php:20
zmsbackendinfoSQL import finishedzmsbackend/src/Zmsbackend/Cli/Db.php:51
zmsbackendinfoUsing database connectionzmsbackend/src/Zmsbackend/Cli/Db.php:74
zmsbackendinfoPending migrationzmsbackend/src/Zmsbackend/Cli/Db.php:117
zmsbackendinfoMigration check finishedzmsbackend/src/Zmsbackend/Cli/Db.php:129
zmsbackendinfoCluster cache setzmsbackend/src/Zmsbackend/Cluster/Service/Cluster.php:40
zmsbackendinfoCluster cache invalidatedzmsbackend/src/Zmsbackend/Cluster/Service/Cluster.php:352
zmsbackendinfoDepartment cache setzmsbackend/src/Zmsbackend/Department/Service/Department.php:35
zmsbackendinfoDepartment cache invalidatedzmsbackend/src/Zmsbackend/Department/Service/Department.php:335
zmsbackenderrorAnonymization process failedzmsbackend/src/Zmsbackend/Helper/AnonymizeStatisticDataByCron.php:53
zmsbackendinfoUsing retention period from admin system configzmsbackend/src/Zmsbackend/Helper/AnonymizeStatisticDataByCron.php:25
zmsbackendinfoUsing default retention periodzmsbackend/src/Zmsbackend/Helper/AnonymizeStatisticDataByCron.php:30
zmsbackendinfoBeginning anonymizationzmsbackend/src/Zmsbackend/Helper/AnonymizeStatisticDataByCron.php:40
zmsbackendinfoAnonymization process completed successfullyzmsbackend/src/Zmsbackend/Helper/AnonymizeStatisticDataByCron.php:49
zmsbackendnoticeAnonymization dry run — no database changeszmsbackend/src/Zmsbackend/Helper/AnonymizeStatisticDataByCron.php:58
zmsbackendinfoDeleting quota older than given periodzmsbackend/src/Zmsbackend/Helper/ApiQuotaDeleteByCron.php:17
zmsbackendinfoProcessing quotazmsbackend/src/Zmsbackend/Helper/ApiQuotaDeleteByCron.php:29
zmsbackendinfoNo expired quota was foundzmsbackend/src/Zmsbackend/Helper/ApiQuotaDeleteByCron.php:36
zmsbackendinfoQuota successfully removedzmsbackend/src/Zmsbackend/Helper/ApiQuotaDeleteByCron.php:47
zmsbackendinfoKeep quotazmsbackend/src/Zmsbackend/Helper/ApiQuotaDeleteByCron.php:53
zmsbackendwarningCould not remove quotazmsbackend/src/Zmsbackend/Helper/ApiQuotaDeleteByCron.php:50
zmsbackendinfoReading availability listzmsbackend/src/Zmsbackend/Helper/AvailabilityDeleteByCron.php:25
zmsbackendinfoWould remove availabilityzmsbackend/src/Zmsbackend/Helper/AvailabilityDeleteByCron.php:31
zmsbackendinfoAvailability successfully removedzmsbackend/src/Zmsbackend/Helper/AvailabilityDeleteByCron.php:40
zmsbackendwarningCould not remove availabilityzmsbackend/src/Zmsbackend/Helper/AvailabilityDeleteByCron.php:43
zmsbackendinfoCalculateDailyWaitingStatisticByCron startedzmsbackend/src/Zmsbackend/Helper/CalculateDailyWaitingStatisticByCron.php:19
zmsbackendinfoCalculateDailyWaitingStatisticByCron finishedzmsbackend/src/Zmsbackend/Helper/CalculateDailyWaitingStatisticByCron.php:25
zmsbackendinfo[DRY RUN] update scope statisticszmsbackend/src/Zmsbackend/Helper/CalculateDailyWaitingStatisticByCron.php:195
zmsbackendinfo(expression)zmsbackend/src/Zmsbackend/Helper/CalculateSlots.php:29
zmsbackendinfo(expression)zmsbackend/src/Zmsbackend/Helper/CalculateSlots.php:42
zmsbackendinfo(expression)zmsbackend/src/Zmsbackend/Helper/CleanProcessArchivedToday.php:24
zmsbackendinfoExecuting archived process cleanup with commitzmsbackend/src/Zmsbackend/Helper/CleanProcessArchivedToday.php:32
zmsbackendinfoArchived process cleanup completedzmsbackend/src/Zmsbackend/Helper/CleanProcessArchivedToday.php:34
zmsbackendcritical(dynamic)zmsbackend/src/Zmsbackend/Helper/ErrorHandler.php:69
zmsbackendinfo(expression)zmsbackend/src/Zmsbackend/Helper/EventLogCleanUpByCron.php:28
zmsbackendinfo(expression)zmsbackend/src/Zmsbackend/Helper/LogCleanUp.php:29
zmsbackendinfoStarting log cleanup processzmsbackend/src/Zmsbackend/Helper/LogCleanUp.php:35
zmsbackendinfoLog cleanup config loadedzmsbackend/src/Zmsbackend/Helper/LogCleanUp.php:40
zmsbackendinfoExecuting log cleanup with commitzmsbackend/src/Zmsbackend/Helper/LogCleanUp.php:47
zmsbackendinfoLog cleanup completedzmsbackend/src/Zmsbackend/Helper/LogCleanUp.php:49
zmsbackendinfoWorkstation logoutzmsbackend/src/Zmsbackend/Helper/LogoutWorkstations.php:32
zmsbackendinfo(expression)zmsbackend/src/Zmsbackend/Helper/ReservedDataDeleteByCron.php:81
zmsbackendinfo(expression)zmsbackend/src/Zmsbackend/Helper/SendMailReminder.php:53
zmsbackendinfoSend process list of current day to scope adminzmsbackend/src/Zmsbackend/Helper/SendProcessListToScopeAdmin.php:20
zmsbackendinfoProcessing scopezmsbackend/src/Zmsbackend/Helper/SendProcessListToScopeAdmin.php:35
zmsbackendinfoSend processList to scope adminzmsbackend/src/Zmsbackend/Helper/SendProcessListToScopeAdmin.php:47
zmsbackendwarningProcesslist empty for scopezmsbackend/src/Zmsbackend/Helper/SendProcessListToScopeAdmin.php:52
zmsbackendwarningMail writing in queue not successfulzmsbackend/src/Zmsbackend/Helper/SendProcessListToScopeAdmin.php:62
zmsbackendinfoDeleting expired ticketprinter older than 30 dayszmsbackend/src/Zmsbackend/Helper/TicketprinterDeleteByCron.php:20
zmsbackendinfoProcessing ticketprinterzmsbackend/src/Zmsbackend/Helper/TicketprinterDeleteByCron.php:31
zmsbackendinfoTicketprinter successfully removedzmsbackend/src/Zmsbackend/Helper/TicketprinterDeleteByCron.php:43
zmsbackendwarningCould not remove ticketprinterzmsbackend/src/Zmsbackend/Helper/TicketprinterDeleteByCron.php:45
zmsbackenderrorError during log cleanupzmsbackend/src/Zmsbackend/Log/Service/Log.php:579
zmsbackenddebugSend mailzmsbackend/src/Zmsbackend/Process/Api/ProcessConfirmationMail.php:64
zmsbackenddebugSend mailzmsbackend/src/Zmsbackend/Process/Api/ProcessDeleteMail.php:65
zmsbackenderrorExpected ProcessListCollection, received different typezmsbackend/src/Zmsbackend/Process/Api/ProcessListByClusterAndDate.php:87
zmsbackenddebugSend mailzmsbackend/src/Zmsbackend/Process/Api/ProcessPreconfirmationMail.php:62
zmsbackendinfoProcess redirectedzmsbackend/src/Zmsbackend/Process/Api/ProcessRedirect.php:45
zmsbackendinfoScope cache setzmsbackend/src/Zmsbackend/Scope/Service/Scope.php:41
zmsbackendinfoScope cache setzmsbackend/src/Zmsbackend/Scope/Service/Scope.php:136
zmsbackendinfoScope cache setzmsbackend/src/Zmsbackend/Scope/Service/Scope.php:187
zmsbackendinfoScope cache setzmsbackend/src/Zmsbackend/Scope/Service/Scope.php:254
zmsbackendinfoScope cache setzmsbackend/src/Zmsbackend/Scope/Service/Scope.php:334
zmsbackendinfoScope cache invalidatedzmsbackend/src/Zmsbackend/Scope/Service/Scope.php:729
zmsbackenderrorFreeProcesszmsbackend/src/Zmsbackend/Slot/Repository/SlotList.php:220
zmsbackenderrorFailed to optimize table with query: $query. Error: zmsbackend/src/Zmsbackend/Slot/Service/Slot.php:501
zmsbackendinfoavailability: zmsbackend/src/Zmsbackend/Slot/Service/Slot.php:223
zmsbackendinfoUseraccount cache hitzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:265
zmsbackendinfoUseraccount cache setzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:288
zmsbackendinfoUseraccount list cache hitzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:326
zmsbackendinfoUseraccount list cache setzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:367
zmsbackendinfoUseraccount department list cache hitzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:589
zmsbackendinfoUseraccount department list cache setzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:631
zmsbackendinfo(expression)zmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:829
zmsbackendinfo(expression)zmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:843
zmsbackendinfoUseraccount role list cache hitzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:995
zmsbackendinfoUseraccount role list cache setzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:1025
zmsbackendinfoUseraccount role and department list cache hitzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:1058
zmsbackendinfoUseraccount role and department list cache setzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:1092
zmsbackendinfoUseraccount caches invalidated after mutationzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:1143
zmsbackendwarninguser_role update on useraccount save failedzmsbackend/src/Zmsbackend/Useraccount/Service/Useraccount.php:746
zmsbackendinfoProcess parkedzmsbackend/src/Zmsbackend/Workstation/Api/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
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
zmsdldberrorFailed to write file to destinationzmsdldb/bin/dldb-helpers.php:164
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:173
zmsdldbinfoDeleted old backupzmsdldb/bin/dldb-helpers.php:187
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