FIXEdge logs format
Format of log entries in the log file
FIXEdge logs have its own format that could be configured with FIXEdge.properties:
Log.File.Format = %date{ISO8601} %timezone %level%tablevel [%logger] %thread %messageWhere:
%level - prints severity level of the log record. List of possible levels:
Level | Definition |
TRACE | Most detailed information. Should be used very sparingly. |
DEBUG | Detailed information on the flow through the system. This log level should never be used in customer-facing environments, but many applications will log debug-level information for troubleshooting purposes |
INFO | Interesting runtime events (startup/shutdown). Expect these to be immediately visible on a console, so be conservative and keep to a minimum. This log level contains informational details and is typically not going to be acted upon by Operations |
WARN | Use of deprecated APIs, poor usage of API, 'almost' errors, other runtime situations that are undesirable or unexpected, but not necessarily "wrong". This log level contains details that can be important but is typically not going to be acted upon by Operations. Some WARN level log items may be escalated if thresholds are met |
ERROR | Other runtime errors or unexpected conditions. This log level contains important error details that must be escalated immediately to remediate failure. This should be as actionable and detailed as possible. Business-level information (e.g. “Customer login was incorrect”) should not be logged at this level, but rather at the WARN level with “BUSINESS ALERT” in the message because they are not application failures. |
FATAL | Severe errors that cause premature termination. An extreme version of “ERROR” |
%tablevel - prints extra spaces for vertical alignment of records after %level
%date{FIX} - prints date in 'YYYYMMDD-HH:MM:SS.sss' format
%date{ISO8601} - prints date in 'YYYY-MM-DD HH:MM:SS,sss' format
%date - prints date in 'DD MMM YYYY HH:MM:SS,sss' format
%date{FIXus} - date in 'YYYYMMDD-HH:MM:SS.uuuuuu' format;
%date{FIXns} - date in 'YYYYMMDD-HH:MM:SS.nnnnnnnnn' format;
%date{ISO8601us} - date in 'YYYY-MM-DD HH:MM:SS,uuuuuu' format;
%date{ISO8601ns} - date in 'YYYY-MM-DD HH:MM:SS,nnnnnnnnn' format;
%timezone - prints time zone abbreviation or name (setup TZ env variable to take abbreviation in windows) or 'UTC'
%logger - prints log category, component
%thread - prints thread id
%thread_name - prints a name of the thread
%message - prints a message
For more information please read the article: How to divide different categories and severities of log files into different files in the Logging section
The ability to configure multiple log format properties with priority is available since FIXEdge 7.1.1
Two log format configurations are supported:
Per-file formats (apply to all loggers writing to the specified file):
Log.{Category}.{Level}.File.Format
Log.{Category}.File.Format
Log.File.Format
Per-category formats (apply only to the specific logger category):
Log.{Category}.{Level}.Format
Log.{Category}.Format
When multiple log format properties are configured, the following priority order is applied (from highest to lowest):
Log.{Category}.{Level}.FormatLog.{Category}.FormatLog.{Category}.{Level}.File.FormatLog.{Category}.File.FormatLog.File.Format
This approach allows precise control over log formatting. You can define a file-wide format for all loggers writing to a file and override formatting for specific categories and log levels as needed. For example, you might specify a unique format for ERROR-level messages in a category, while other messages use the general or default settings.
Example:
# File-wide format (default for all loggers writing to this file)
Log.File.Format = %date{ISO8601} %level [%logger] %message# Category-wide format (applies to all messages from the FIXMessages category)
Log.FIXMessages.Format = %date{ISO8601} %level [%logger] [FIX] %message# Category and level-specific format (applies only to ERROR-level messages from the FIXMessages category)
Log.FIXMessages.ERROR.Format = %date{ISO8601} %level [%logger] [FIX][ERROR] %message# File-wide format for a specific category (applies to all FIXMessages written to the specified file)
Log.FIXMessages.File.Format = %date{ISO8601} %level [%logger] [FIX][FILE] %messageFormat of event entries for transfer to ArcSight
The log transfer to ArcSight is supported since FIXEdge version 6.7.0. Log entries format must satisfy the requirements of this system (e.g. CEF Format). The log format for transfer to ArcSight can be configured in FIXEdge.properties file and set using patterns. The following characters can be used in the pattern:
Conversion Character | Example using | Effect | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
X | %X{msg} | Prints to output the value of a given runtime variable:
| ||||||||||||||||
E | %E{ENV1} | Used to output the value of a given environment variable. The name of is supplied as an argument in brackets. The empty string will be used if the variable does exist. For example, the pattern E{HOME} will output the contents of the HOME environment variable. Also can be used Additional Environment Variables of FIXEdge:
| ||||||||||||||||
\ | %E\{ENV1} | adds backslash to the following symbols to comply with CEF Format:
| ||||||||||||||||
"%%" |
| Transforms the sequence of "%" symbols to a single percent sign %. | ||||||||||||||||