

In RelativityOne, you can use the log extractor to access logs for a custom application. You can view logs for a date range of seven days or less, which your custom application has generated in the last 21 days. The log extractor accesses the logs and displays them as JSON output on a new tab in your browser where you can view or download them.
Follow good security practices when writing and retrieving logs to minimize data exposure:
To utilize the log extractor, you must have system admin permissions in RelativityOne.
Use the following steps to create a log request for a custom application.
Note: Before using log extractor, confirm that your custom application has logging configured properly. For more information, see Log from a Relativity application on the RelativityOne Developers site.
{
"timestamp": 1632417817000,
"severity.text": "Error",
"severity.number": 17,
"message": "Error was encountered getting message from a batch of type {typeName}",
"exception.message": "Relativity.ServiceBus.Contracts.Exceptions.TransientException: Error during communication with Service Bus. Check the connection information, then retry.",
"exception.stacktrace": "Microsoft.ServiceBus.Messaging.MessagingCommunicationException: Error during communication with Service Bus. Check the connection information, then retry. ---> System.ServiceModel.CommunicationObjectFaultedException: ...",
"exception.type": "Microsoft.ServiceBus.Messaging.MessagingCommunicationException",
"typeName": "DynamicReviewDocumentMessage",
"OperationContext.ExecutingAgent": "Active Learning Worker",
"OperationID": "|bbb7b777-7777777b777b7777.",
"SourceContext": "Analytics.ActiveLearning.Agents.MessageHandlers.BaseMessageHandlers. BatchedMessageHandlerBase`1[[Relativity.Core.DTO.DynamicReviewDocumentMessage, Relativity. Core, Version=47.2.6.0, Culture=neutral, PublicKeyToken=null]]",
"SourceID": "b7b77b7b-7777-77bb-b7b7-77b777bb77bb",
"r1.source.id": "b7b77b7b-7777-77bb-b7b7-77b777bb77bb",
"MachineName": "aa999aaa999999",
"host.name": "aa999aaa999999",
"AppDomain": 55,
"Application": "bbb7bb7b-7777-7b77-bb7b-7b77b777bbb7",
"application.guid": "bbb7bb7b-7777-7b77-bb7b-7b77b777bbb7",
"application.name": "My Application",
"SubSystem": "CustomAgent",
"r1.subsystem": "CustomAgent",
"System": "Agent",
"r1.system": "Agent",
"ProcessId": 7777,
"process.pid": 7777
}
The links to log request expire after seven days. After seven days, the retrieved logs are deleted from their temporary storage.
The Status column is updated to display the following statuses:
In January 2024, the back-end log aggregator was updated to a new log aggregator engine. As a result of this update, some changes are applied to the JSON log output, compared to the previous output before the log aggregator was updated. The following sections describe the changes to the log output.
Attribute | Example value before update | Example value after update |
---|---|---|
Timestamp: renamed to timestamp and converted from ISO 8601 to unix epoch time in milliseconds. | "Timestamp": "2021-09-23T17:23:37.0000000+00:00" | "timestamp": 1632417817000 |
Level: renamed to severity.text and a severity.number value is added. See OpenTelemetry's Severity Fields documentation for detail on the severity numbers. | "Level": "Error" | "severity.text": "Error", "severity.number": 17, |
MessageTemplate: renamed to message. | "MessageTemplate": "Error was encountered getting message from a batch of type {typeName}" | "message": "Error was encountered getting message from a batch of type {typeName}" |
RenderedMessage field is removed | "RenderedMessage": "Error was encountered getting message from a batch of type \"DynamicReviewDocumentMessage\"" | (none) |
Exception is split into exception.message, exception.stacktrace, and exception.type. If exception.stacktrace exceeds 4090 characters it will overflow into exception.stacktrace_1 and exception.stacktrace_2 as needed, supporting up to 12270 (4090*3) characters. | "Exception": "<exception source...> <Exception stack trace...>" |
"exception.message": "<exception source...>: <error message...>", "exception.stacktrace": <1st 4090 characters...> "exception.stacktrace_1": <2nd 4090 characters...>, "exception.stacktrace_2": <3rd 4090 characters...>, "exception.type": "<exception type...>", |
Properties is flattened and the keys are concatenated with a ".". The Properties prefix is dropped | "Properties": { "typeName": "DynamicReviewDocumentMessage", "OperationContext": { "ExecutingAgent": "Active Learning Worker" }, "OperationID": "|aad3c000-4152151a479b8803.", "SourceContext": "<sourcecontext...>", "SourceID": "b7b77b7b-7777-77bb-b7b7-77b777bb77bb", "MachineName": "aa999aaa999999", "AppDomain": 55, "Application": "bbb7bb7b-7777-7b77-bb7b-7b77b777bbb7", "SubSystem": "CustomAgent", "System": "Agent", "ProcessId": 4336 |
"typeName": "DynamicReviewDocumentMessage",
"OperationContext.ExecutingAgent": "Active Learning Worker", "OperationID": "|aad3c000-4152151a479b8803.", "SourceContext": <sourcecontext...>", "SourceID": "b7b77b7b-7777-77bb-b7b7-77b777bb77bb", "MachineName": "aa999aaa999999", "AppDomain": 55, "Application": "bbb7bb7b-7777-7b77-bb7b-7b77b777bbb7", "SubSystem": "CustomAgent", "System": "Agent", "ProcessId": 4336 |
Attribute | Example value |
---|---|
r1.source.id: value is copied from SourceID. SourceID will be deprecated at a future date | "r1.source.id": "b7b77b7b-7777-77bb-b7b7-77b777bb77bb", |
host.name: value copied from MachineName. MachineName will be deprecated at a future date. | "host.name": "aa999aaa999999", |
application.guid: value copied from Application when Application is a guid. Application will be deprecated at a future date. | "application.guid": "bbb7bb7b-7777-7b77-bb7b-7b77b777bbb7", |
application.name: value copied from Application when Application is not a guid. Application will be deprecated at a future date. | "application.name": "My Application", |
r1.subsystem: value copied from SubSystem. SubSystem will be deprecated at some future date. | "r1.subsystem": "CustomAgent" |
r1.system: value copied from System. System will be deprecated at a future date. | "r1.system": "Agent" |
process.pid: value copied from ProcessId. ProcessId will be deprecated at a future date. | "process.pid": 7777 |
The following scenarios will cause a loss of logging data:
Why was this not helpful?
Check one that applies.
Thank you for your feedback.
Want to tell us more?
Great!