System logging
System log configuration and logger hierarchy for FortifiedID EID Server.
The system log records what the server process is doing: module startup and shutdown, database connection status, outbound HTTP calls, authentication outcomes, and application errors. Its primary audience is the operator monitoring and troubleshooting the running service.
Log file
Section titled “Log file”logs/server.log — rotated daily, with previous days kept as logs/server.YYYY-MM-DD.log.
In container deployments with the -c flag, the same output goes to stdout instead of a file.
Log format
Section titled “Log format”Each line follows the pattern:
%d %t [%c{1}] %p: %m%n| Field | Description |
|---|---|
%d |
Timestamp |
%t |
Thread name |
%c{1} |
Logger name (last segment) |
%p |
Log level |
%m |
Message |
Example:
2026-08-14 10:23:01,412 vert.x-worker-thread-1 [OrgSyncModule] INFO: Organization sync complete: 3 organizations loadedLogger hierarchy
Section titled “Logger hierarchy”EID Server uses three application logger namespaces. Their default levels in production are:
| Logger | Default level | Covers |
|---|---|---|
fortifiedid |
DEBUG |
EID-specific application code |
fortified |
INFO |
Shared FortifiedID platform libraries |
foss |
DEBUG |
Open-source foundation libraries |
The Vert.x blocked-thread checker (io.vertx.core.impl.BlockedThreadChecker) is suppressed by default to avoid noise from expected blocking operations.
Adjusting log levels
Section titled “Adjusting log levels”To change the level of the main application logger without restarting, edit config/log4j2.xml. Log4j2 detects the change within 30 seconds and reloads automatically.
Example — raise fortifiedid to TRACE for deep debugging:
<AsyncLogger name="fortifiedid" level="TRACE"/>Example — silence a noisy subsystem:
<AsyncLogger name="fortifiedid.vc.web.handlers.issuer.SubmitFlowHandler" level="WARN"/>For a one-time level change at container startup, use the SERVER_LOG_LEVEL environment variable instead. This sets the fortifiedid logger level without touching the config file.
Network log
Section titled “Network log”HTTP access logs (inbound requests and responses) are written to logs/network.log by the io.vertx.ext.web.handler logger. This log is separate from server.log and is not affected by SERVER_LOG_LEVEL.