System Log
System logs contain standard information that identifies day-to-day processing. They are organized into logical sections.
Message Identification Values
Each message line begins with standard information that provides orientation for where and when the message occurred, including the logging level, process and thread IDs, date and time, and the MATRIXX process that generated the message.
LM_INFO [transaction_server_1]
LM_INFO
is the log level set for the Log Manager. The log level starts the beginning of each message. The other log levels are:LM_CRIT
,LM_WARN
,LM_INFO
,LM_DEBUG
, andLM_TRACE
[transaction_server_1]
is the MATRIXX Engine component generating the message. In this case, the Transaction Server is running on server 1.
Standard Header Messages
The first several messages in a log file form the log header information and have information about the current logging configuration.
LM_INFO [transaction_server_1] | LogManager::readConfig(), mtx_config.xml: log file name = mtx_debug.log
LM_INFO [transaction_server_1] | LogManager::readConfig(), mtx_config.xml: log level = info
LM_INFO [transaction_server_1] | LogManager::readConfig(), mtx_config.xml: syslog log level = off
LM_INFO [transaction_server_1] | LogManager::readConfig(), mtx_config.xml: syslog facility = local0
LM_INFO [transaction_server_1] | LogManager::readConfig(), mtx_config.xml: log config update filename = log_update.cfg
Start Up Messages
The messages that follow the header information are generated for all system start-up operations. They include messages that occur when the MATRIXX Engine processes, messages, and database objects are first initialized in the system.
coordinator_sender_task
:
LM_INFO [transaction_server_1] | ProcessStatus::start: starting task TXN1-CoordinatorsSender:coordinators_sender_task
LM_INFO [transaction_server_1] | TXN1-CoordinatorsSender:coordinators_sender_task:Task::start: TaskStatus is now 'STARTING'
Configuration Messages
The messages that follow the start up messages are
generated for all MATRIXX processes. They include configuration information that is
retrieved from the mtx_config.xml configuration file during
start-up and cached in the configuration container associated with each server. All
configuration information is read from the same configuration file, so the global
configuration information, such as container description and database configuration,
that is cached for all servers is the same. Then, each MATRIXX process reads its own
server-specific configuration. For example, transaction_server_1
reads the information inside the <transaction_server id="1">
configuration in additional to the global configuration.
LM_INFO [charging_server_1] | Config NameValueMap: container.SubscriberIdAllocation.field.BalanceIdList.datatype = unsigned int64
LM_INFO [charging_server_1] | Config NameValueMap: container.SubscriberIdAllocation.field.BalanceIdList.list = 1
LM_INFO [charging_server_1] | Config NameValueMap: container.SubscriberIdAllocation.field.BalanceIdQuantity.datatype = unsigned int32
LM_INFO [charging_server_1] | Config NameValueMap: container.SubscriberIdAllocation.field.SubscriberIdList.datatype = unsigned int64
LM_INFO [charging_server_1] | Config NameValueMap: container.SubscriberIdAllocation.field.SubscriberIdList.list = 1
LM_INFO [charging_server_1] | Config NameValueMap: container.SubscriberIdAllocation.field.SubscriberIdQuantity.datatype = unsigned int32
LM_INFO [charging_server_1] | Config NameValueMap: container.SubscriberIdAllocation.field.WalletIdList.datatype = unsigned int64
LM_INFO [charging_server_1] | Config NameValueMap: container.SubscriberIdAllocation.field.WalletIdList.list = 1
Latency Data
When MATRIXX Engine stops, latency statistics are written to the system log. The statistics begin recording when MATRIXX Engine starts. The latencies are recorded in buckets that span 1000 microseconds. Bucket 1 counts all packets that took 0–1000 microseconds to process, bucket 2 counts all packets that took 1000–2000 microseconds to process, and so on.
LM_INFO [diameter_gateway_1] | DiameterIO:diameter_sender_task: Latency bucket 0 (0 <= x < 1000 micros) -- 49 messages
LM_INFO [diameter_gateway_1] | DiameterIO:diameter_sender_task: Latency bucket 1 (1000 <= x < 2000 micros) -- 7012 messages
LM_INFO [diameter_gateway_1] | DiameterIO:diameter_sender_task: Latency bucket 2 (2000 <= x < 3000 micros) -- 3944 messages
LM_INFO [diameter_gateway_1] | DiameterIO:diameter_sender_task: Latency bucket 3 (3000 <= x < 4000 micros) -- 4143 messages
LM_INFO [charging_server_1] | CHRG-Response:response_task: Latency bucket 0 (0 <= x < 1000 micros) -- 60763 messages
LM_INFO [charging_server_1] | CHRG-Response:response_task: Latency bucket 1 (1000 <= x < 2000 micros) -- 16903 messages
LM_INFO [charging_server_1] | CHRG-Response:response_task: Latency bucket 2 (2000 <= x < 3000 micros) -- 437 messages
LM_INFO [charging_server_1] | CHRG-Response:response_task: Latency results: max latency of 98334 micros detected in 2
Latencies caused by a Mobile Application Part (MAP) callout, call initiation, or Pay Now operation are not included in
latency calculations that produce messages in the system log. To cause these relatively large latencies to be reported, set original_latency_log_trigger_in_millis
in a
sed.extra
file. For example, to cause logging of latencies exceeding five seconds, add the following:
<original_latency_log_trigger_in_millis>5000</original_latency_log_trigger_in_millis>
A setting of 0
disables this feature.
Gateway Connection
The Diameter Gateway logs connection (open and close) diagnostic messages to facilitate diameter health monitoring. The following example shows Diameter Gateway connection states written to the system log:
LM_INFO [diameter_gateway_52] | DiameterIO:diameter_sender_task:01:TCPOutputHandler:open: socket options for addr=localhost:3868: [task IO size 65536] SO_SNDBUF 131072, TCP_NODELAY 0, TCP_CORK 0
LM_INFO [diameter_gateway_52] | DiameterIO:diameter_receiver_task:01:TCPInputHandler::closeSocket: connectionData_ before: [0]=27 [1]=28 [2]=29 [3]=30 [4]=32
LM_INFO [diameter_gateway_52] | DiameterIO:diameter_receiver_task:01:TCPInputHandler::closeSocket: closing the input socket [INPUT CHANNEL]. addr=localhost:3868, fd=32
LM_INFO [diameter_gateway_52] | DiameterIO:diameter_receiver_task:01:TCPInputHandler::closeSocket: connectionData_.size before=5, after=4. addr=localhost:3868, fd=32, connectionData_: [0]=27 [1]=28 [2]=29 [3]=30
LM_INFO [charging_server_52] | ResponseTask::getAndResetMsgStats: msgCnt=993012, prevMsgCnt=988028, microsPerMsg=200
LM_INFO [charging_server_52] | EnrichmentTask::handleInput: receivedBuf: queueIndex=0, msgCnt=2993038, prevMsgCnt=2988043, prevMicrosPerMsg=200, microsPerMsg=200, deltaMicrosPerMsg=0
LM_INFO [diameter_gateway_52] | DiameterIO:diameter_receiver_task:01:TCPInputHandler::handle_input: Accept OK. addr=localhost:3868, fd=32
LM_INFO [diameter_gateway_52] | DiameterIO:diameter_sender_task:01:IOSenderTask::openConnection: establishing a connection to localhost:3868, socketFd=28
LM_INFO [diameter_gateway_52] | DiameterIO:diameter_sender_task:01:TCPOutputHandler:open: using established socket to addr=localhost:3868, fd=32