Logging
Configuration
Configure all Gramax Enterprise Server containers except doc-portal and web-editor:
LOG_TYPE— log format (default|cef). Default:default.LOG_LEVEL— minimum log level (debug|info|warn|error|fatal). Default:info.LOG_TRANSPORTER— output transport (console|syslog). Default:console.
Additional parameters for LOG_TRANSPORTER=syslog:
LOG_SYSLOG_HOST— Syslog server host. Default:127.0.0.1.LOG_SYSLOG_PORT— port. Default:514.LOG_SYSLOG_PROTOCOL— protocol (udp4|tcp4|tls4|udp6|tcp6|tls6). Default:udp4.LOG_SYSLOG_APP_NAME— application name in log messages. Default:gramax.
CEF log structure
Logs contain structured event information: a unique identifier, message description, severity level, and extensions with additional data from the event context.
Each log consists of two main parts:
Header
Extensions
Header
The log header follows the CEF standard:
CEF:0|<vendor>|<product>|<version>|<event id>|<message>|<severity>|
Vendor. Manufacturer (e.g., Gramax).
Product. Product name (e.g., GES).
Version. Product version (e.g., 1.0).
Event ID. Unique event identifier determined by message type. Message keys are mapped to event IDs via a dictionary (e.g., invalidCredentials → 1004).
Message. Human-readable event description from the message dictionary.
Severity. Numeric value indicating event importance. Severity values map from log levels as follows:
Debug: 1
Info: 3
Warn: 5
Error: 7
Fatal: 10
Extensions
After the header, extensions are appended using | as a separator — additional data extracted from the event context. Each extension parameter is a key-value pair:
<cefField>=<value>
Extensions provide detailed event information such as request ID, IP address, user email, error details, etc.
Context and extension mapping
CEF extensions are built using a mapping where each context field corresponds to a specific CEF field.
Context field | CEF field (extension) | Description |
|
| IP address of the request |
| - | Unique request identifier |
|
| User email (if provided) |
|
| User email |
|
| User login when publishing to Cloud |
|
| Administrator email |
|
| Reason for denial |
|
| Error details |
|
| SSO authentication type |
|
| Connector type used |
|
| Redirect URL |
|
| List of allowed URLs |
|
| File name (e.g., config file) |
|
| Full path to file or resource |
|
| Group identifier |
|
| Directory path |
|
| Full path to file or resource |
|
| Resource identifier |
|
| Previous value (before change) |
|
| New value (after change) |
|
| List of missing variables |
|
| URL specified in the event |
|
| Days remaining until license expiry |
|
| Additional response data |
|
| AI service options at the time of error |
Message to event ID mapping
Each system event has a message key that uniquely maps to:
Event ID. A unique event identifier.
Description. A human-readable message.
Examples:
invalidCredentials
Event ID:
1004Message: "Invalid credentials"
disabledSsoAuth
Event ID:
1001Message: "Disabled SSO auth"
addEditors (for administrative changes)
Event ID:
4001Message: "Add editor"
Log examples
Examples of CEF-format logs. The id field (request identifier) is a random UUID; event id comes from the mapping for each message.
Description: Successful authentication.
Event ID: 1028
Message: "Logged in via SSO"
Severity: 3 (info)
Extensions:
id— unique request identifier (UUID)src— request IP addressssoType— SSO typeduser— user email
Example log:
Mar 31 13:19:54 host CEF:0|Gramax|GES|1.0|1028|Logged in via SSO|3|id=75f78bfe-ec42-4fdc-969c-3f929dcc src=192.168.1.130 ssoType=azure duser=egor.zaidov@example.com
Description: Initialization event indicating that SSO authentication is disabled.
Event ID: 1001
Message: "Disabled SSO auth"
Severity: 5 (warn)
Example log:
Apr 01 14:25:30 host CEF:0|Gramax|GES|1.0|1001|Disabled SSO auth|5
Description: Administrative change — adding a new editor.
Event ID: 4001
Message: "Add editor"
Severity: 3 (info)
Extensions:
id— request UUIDsrc— request IP addresssuser— administrator identifiernewValue— new value (editor)
Example log:
Apr 01 14:35:45 host CEF:0|Gramax|GES|1.0|4001|Add editor|3|id=ad2e5f9c-4b3d-47e8-9a6d-3c2e8d4f src=192.168.1.104 suser=admin@example.com newValue="new_editor" groupId=gramax