Protocol logging in Exchange Server 2016

Protocol logging records the SMTP conversations that occur between messaging servers and between Exchange services in the transport pipeline as part of message delivery. 

 

By default, protocol logging is enabled on the following connectors:

 

·         The default Receive connector named Default Frontend <ServerName> in the Front End Transport service on Mailbox servers.

·         The implicit and invisible Send connector in the Front End Transport service on Mailbox servers.

 

All Receive connectors in a transport service share the same protocol log files and protocol log options. These files and options are separate from the Send connector protocol log files and protocol log options in the same transport service on the Exchange server.

By default, Exchange uses circular logging to limit the protocol log based on file size and file age to help control the hard disk space that's used by the log files

Front End Transport service on Mailbox servers

Receive connectors

%ExchangeInstallPath%TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive

Send connectors

%ExchangeInstallPath%TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpSend

Transport service on Mailbox servers

Receive connectors

%ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpReceive

Send connectors

%ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpSend

Mailbox Transport Delivery service on Mailbox servers

Receive connectors

%ExchangeInstallPath%TransportRoles\Logs\Mailbox\ProtocolLog\SmtpReceive\Delivery

Mailbox Transport Submission service on Mailbox servers

Send connectors

%ExchangeInstallPath%TransportRoles\Logs\Mailbox\ProtocolLog\SmtpSend\Submission

Protocol logging for side effect messages that are submitted after messages are delivered to mailboxes

 

%ExchangeInstallPath%TransportRoles\Logs\Mailbox\ProtocolLog\SmtpSend\Delivery

Transport service on Edge Transport servers

Receive connectors

%ExchangeInstallPath%TransportRoles\Logs\Edge\ProtocolLog\SmtpReceive

Send connectors

%ExchangeInstallPath%TransportRoles\Logs\Edge\ProtocolLog\SmtpSend

 

The naming convention for log files is SENDyyyymmdd-nnnn.log for Send connectors and RECVyyyymmdd-nnnn.log for Receive connectors information is written to the log file until the file reaches its maximum size. Then, a new log file that has an incremented instance number is opened (the first log file is -1, the next is -2, and so on).

 

The protocol log files are text files that contain data in the comma-separated value file (CSV) format. Each protocol log file has a header that contains the following information:

·         #Software   The value is Microsoft Exchange Server.

·         #Version   Version number of the Exchange server that created the message tracking log file. The value uses the format 15.01.nnnn.nnn.

·         #Log-Type   The value is either SMTP Receive Protocol Log or SMTP Send Protocol Log.

·         #Date   UTC date-time when the log file was created. The UTC date-time is represented in the ISO 8601 date-time format: yyyy-mm-ddThh:mm:ss.fffZ, where yyyy = year, mm = month, dd = day, T indicates the beginning of the time component, hh = hour, mm = minute, ss = second, fff = fractions of a second, and Z signifies Zulu, which is another way to denote UTC.

·         #Fields   Comma-delimited field names that are used in the protocol log files.

 

 

 

 

Circular logging deletes the oldest log files when either of the following conditions is true:

  • A log file reaches its maximum age.
  • The protocol log folder reaches its maximum size.

 

Fields in the protocol log

The protocol log stores each SMTP protocol event on a single line in the log. The information stored on each line is organized by fields, and these fields are separated by commas. The fields that are used in the protocol log are described in the following table.

 

Field name

Description

date-time

UTC date-time of the protocol event. The UTC date-time is represented in the ISO 8601 date-time format: yyyy-mm-ddThh:mm:ss.fffZ, where yyyy = year,mm = month, dd = day, T indicates the beginning of the time component, hh = hour, mm = minute, ss = second, fff = fractions of a second, and Z signifies Zulu, which is another way to denote UTC.

connector-id

Distinguished name (DN) of the connector that's associated with the SMTP event.

session-id

GUID value that's unique for each SMTP session, but is the same for every event that's associated with that SMTP session.

sequence-number

Counter that starts at 0 and is incremented for each event in the same SMTP session.

local-endpoint

Local endpoint of an SMTP session. This consists of an IP address and TCP port number formatted as <IP address>:<port>.

remote-endpoint

Remote endpoint of an SMTP session. This consists of an IP address and TCP port number formatted as <IP address>:<port>.

event

Single character that represents the protocol event. The possible values for the event are as follows:

·         +   Connect

·         -   Disconnect

·         >   Send

·         <   Receive

·         *   Information

data

Text information associated with the SMTP event.

context

Additional contextual information that may be associated with the SMTP event.

 

One SMTP conversation that represents sending or receiving a single email message generates multiple SMTP events. Each event is recorded on a separate line in the protocol log. An Exchange server has many SMTP conversations going on at any given time. This creates protocol log entries from different SMTP conversations that are mixed together. You can use the session-id and sequence-number fields to sort the protocol log entries by each individual SMTP conversation.

 

 

 

 

Comments