Storage Analytics Log Format
Updated: June 12, 2012
Each log entry conforms to a standard log format that is determined by the version of Storage Analytics Logging. The first field in a log entry always specifies the version number. Consumers of logging data can take a dependency on this field as well as the following aspects of a log entry:
-
All fields, populated or empty, will be separated by a semicolon “;”
-
Each log entry is separated by a newline character “\n”
-
The last field in the entry will not end with a semicolon “;”
Always check the version before processing a log entry.
Note |
|---|
| Any field that may contain a quote (“), a semicolon (;), or a newline (\n) is HTML encoded and quoted. |
Log Entry Format
Each version 1.0 log entry adheres to the following format:
<version-number>;<request-start-time>;<operation-type>;<request-status>;<http-status-code>;<end-to-end-latency-in-ms>;<server-latency-in-ms>;<authentication-type>;<requester-account-name>;<owner-account-name>;<service-type>;<request-url>;<requested-object-key>;<request-id-header>;<operation-count>;<requester-ip-address>;<request-version-header>;<request-header-size>;<request-packet-size>;<response-header-size>;<response-packet-size>;<request-content-length>;<request-md5>;<server-md5>;<etag-identifier>;<last-modified-time>;<conditions-used>;<user-agent-header>;<referrer-header>;<client-request-id>
The following table lists and defines each field in a log entry.
| Field Name | Field Type | Definition | Example |
|---|---|---|---|
|
|
string |
The version of Storage Analytics Logging used to record the entry. |
|
|
|
timestamp |
The time in UTC when the request was received by Storage Analytics. |
|
|
|
string |
The type of REST operation performed. See the Storage Analytics Logged Operations and Status Messages topic for a list of possible operations. |
|
|
|
string |
The status of the requested operation. See the Storage Analytics Logged Operations and Status Messages topic for a list of possible status messages. |
|
|
|
string |
The HTTP status code for the request. If the request is interrupted, this value may be set to |
|
|
|
duration |
The total time in milliseconds to perform the requested operation, including the time to read the incoming request and send the response to the requester. |
|
|
|
duration |
The total time in milliseconds to perform the requested operation. This value does not include network latency (the time to read the incoming request and send the response to the requester). |
|
|
|
string |
Indicates whether the request was authenticated, anonymous, or used Shared Access Signature (SAS). |
|
|
|
string |
The account name making the request, if the request is authenticated. This field will be empty for anonymous and SAS requests. |
|
|
|
string |
The account name of the service owner. |
|
|
|
string |
The requested storage service: blob, table, or queue. |
|
|
|
string |
The complete URL of the request, in quotes. |
|
|
|
string |
The key of the requested object, in quotes. This field will always use the account name, even if a custom domain name has been configured. |
|
|
|
guid |
The request ID assigned by the storage service. This is equivalent to the value of the |
|
|
|
int |
The number of each logged operation for a request, using an index of zero. Some requests require more than one operation, such as Copy Blob, though most perform just one operation. |
|
|
|
string |
The IP address of the requester. |
|
|
|
string |
The storage service version specified when the request was made. This is equivalent to the value of the |
|
|
|
long |
The size of the request header, in bytes. If a request is unsuccessful, this value may be empty. |
|
|
|
long |
The size of the request packets read by the storage service, in bytes. If a request is unsuccessful, this value may be empty. |
|
|
|
long |
The size of the response header, in bytes. If a request is unsuccessful, this value may be empty. |
|
|
|
long |
The size of the response packets written by the storage service, in bytes. If a request is unsuccessful, this value may be empty. |
|
|
|
long |
The value of the |
|
|
|
string |
The value of either the Content-MD5 header or the x-ms-content-md5 header in the request, in quotes. The MD5 hash value specified in this field represents the content in the request. This field can be empty. |
|
|
|
string |
The value of the MD5 hash calculated by the storage service, in quotes. This field can be empty. |
|
|
|
string |
The ETag identifier for the returned object, in quotes. |
|
|
|
datetime |
The Last Modified Time (LMT) for the returned object, in quotes. This field is empty for operations that can return multiple objects. |
|
|
|
string |
A semicolon-separated list in the form of
|
|
|
|
string |
The |
|
|
|
string |
The |
|
|
|
string |
The |
|
Sample Log Entries
Get Blob
The following sample log entry applies to an anonymous GetBlob request:
1.0;2011-08-09T18:52:40.9241789Z;GetBlob;AnonymousSuccess;200;18;10;anonymous;;myaccount;blob;"https:// myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lake.jpg";a84aa705-8a85-48c5-b064-b43bd22979c3;0;123.100.2.10;2009-09-19;252;0;265;100;0;;;"0x8CE1B6EA95033D5";Friday, 09-Aug-11 18:52:40 GMT;;;;"8/9/2011 6:52:40 PM ba98eb12-700b-4d53-9230-33a3330571fc"
Put Blob
The following sample log entry applies to an authenticated PutBlob request:
1.0;2011-08-09T18:02:40.6271789Z;PutBlob;Success;201;28;21;authenticated;myaccount;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lake.jpg";fb658ee6-6123-41f5-81e2-4bfdc178fea3;0;201.9.10.20;2009-09-19;438;100;223;0;100;;"66CbMXKirxDeTr82SXBKbg==";"0x8CE1B67AD25AA05";Friday, 09-Aug-11 18:02:40 GMT;;;;"8/9/2011 6:02:40 PM ab970a57-4a49-45c4-baa9-20b687941e32"
Copy Blob
The following sample log entry applies to an authenticated CopyBlob request performed using a version older than 2012-02-12. The Copy Blob operation will log 3 operations: CopyBlob, CopyBlobSource, and CopyBlobDestination. Note that the request ID property is identical for all three operations, but the operation ID is incremented for each operation. The request ID and operation ID are in bold for each log entry below:
1.0;2011-08-09T18:02:40.6526789Z;CopyBlob;Success;201;28;28;authenticated;account8ce1b67a9e80b35;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lakebck.jpg";85ba10a5-b7e2-495e-8033-588e08628c5d;0;268.20.203.21;2009-09-19;505;0;188;0;0;;;"0x8CE1B67AD473BC5";Friday, 09-Aug-11 18:02:40 GMT;;;;"8/9/2011 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"
1.0;2011-08-09T18:02:40.6526789Z;CopyBlobSource;Success;201;28;28;authenticated;myaccount;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lake.jpg";85ba10a5-b7e2-495e-8033-588e08628c5d;1;268.20.203.21;2009-09-19;505;0;188;0;0;;;;;;;;"8/9/2011 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"
1.0;2011-08-09T18:02:40.6526789Z;CopyBlobDestination;Success;201;28;28;authenticated;myaccount;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"/myaccount/thumbnails/lakebck.jpg";85ba10a5-b7e2-495e-8033-588e08628c5d;2;268.20.203.21;2009-09-19;505;0;188;0;0;;;;;;;;"8/9/2011 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"
In version 2012-02-12 and newer, the <requested-object-key> is a Url which replaces the /accountname/containername/blobname format used in versions before 2012-02-12.
1.0;2012-05-11T18:02:40.6526789Z;CopyBlob;Success;201;28;28;authenticated;account8ce1b67a9e80b35;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lakebck.jpg?timeout=30000";"/myaccount/thumbnails/lakebck.jpg";95ba10a5-b7e2-495e-8033-588e08628c5d;0;268.20.203.21;2012-02-12;505;0;188;0;0;;;"0x8CE1B67AD473BC5";Friday, 09-May-12 18:02:40 GMT;;;;"5/11/2012 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"
1.0;2012-05-11T18:02:40.6526789Z;CopyBlobSource;Success;201;28;28;authenticated;myaccount;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";"https://myaccount.blob.core.windows.net/thumbnails/lake.jpg?timeout=30000";95ba10a5-b7e2-495e-8033-588e08628c5d;1;268.20.203.21;2012-02-12;505;0;188;0;0;;;;;;;;"5/11/2012 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"
1.0;2012-05-11T18:02:40.6526789Z;CopyBlobDestination;Success;201;28;28;authenticated;myaccount;myaccount;blob;"https://myaccount.blob.core.windows.net/thumbnails/lakebck.jpg?timeout=30000";"/myaccount/thumbnails/lakebck.jpg";95ba10a5-b7e2-495e-8033-588e08628c5d;2;268.20.203.21;2012-02-12;505;0;188;0;0;;;;;;;;"5/11/2012 6:02:40 PM 683803d3-538f-4ba8-bc7c-24c83aca5b1a"
See Also
Note