Log Extractor

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.

Note: Currently, the log extractor isn't available for use in sandbox environments. For more information, see RelativityOne Sandbox.

This page contains the following information:

Required permissions

To utilize the log extractor, you must have system admin permissions in RelativityOne.

Creating a log request for a custom application

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.

  1. Navigate to the Log Extractor tab in RelativityOne.
  2. Click New Application Log Request.
  3. Click Select to choose an application.
  4. Application Log Request dialog

  5. Select a Start Date, End Date, and Local Time for each date.
      Notes:
    • Format your local time in your current time zone. The log extractor returns results in the UTC time format.
    • Don't enter a date more than 21 days old.
    • Make sure the total time between the start and end dates is seven days or less.
  6. Click Request to submit your new application log request.
  7. Request button

    The Logs field is populated with the View and Download (Azure) link when the workflow completes and the page refreshes.

    The Status field is populated as follows:

    • Requested - indicates a log extractor job is requested.
    • In Progress - indicates logs are being extracted.
    • Complete - indicates the logs are extracted. The View and Download (Azure) link is now available.
    • Note: The links to log requests expire after seven days. For more information, see Log lifespan.

  8. Click View and Download (Azure). A new tab opens and displays the data in JSON formatting. See the following example of JSON output:
  9. {
      "Timestamp": "2021-09-23T17:23:37.2208267+00:00",
      "Level": "Error",
      "MessageTemplate": "Error was encountered getting message from a batch of type {typeName}",
      "RenderedMessage": "Error was encountered getting message from a batch of type \"DynamicReviewDocumentMessage\"",
      "Exception": "Relativity.ServiceBus.Contracts.Exceptions.TransientException: Error during communication with Service Bus. Check the connection information, then retry. ---> Microsoft.ServiceBus.Messaging.MessagingCommunicationException: Error during communication with Service Bus. Check the connection information, then retry. ---> System.ServiceModel.CommunicationObjectFaultedException: Internal Server Error: The server did not provide a meaningful reply; this might be caused by a premature session shutdown. TrackingId:d535ea41-cca7-4fd4-8b66-60616c57ee7a, Timestamp:9/23/2021 5:23:37 PM\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at Microsoft.ServiceBus.Common.ExceptionExtensions.Rethrow(Exception exception)\r\n   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)\r\n   at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.DuplexCorrelationAsyncResult.End(IAsyncResult result)\r\n   at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.EndRequest(IAsyncResult result)\r\n   at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.<>c.<GetAsyncSteps>b__9_3(RequestAsyncResult thisPtr, IAsyncResult r)\r\n   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at Microsoft.ServiceBus.Common.ExceptionExtensions.Rethrow(Exception exception)\r\n   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)\r\n   at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)\r\n   at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.EndRequest(IAsyncResult result)\r\n   at Microsoft.ServiceBus.Messaging.Sbmp.RedirectBindingElement.RedirectContainerChannelFactory`1.RedirectContainerSessionChannel.RequestAsyncResult.<>c__DisplayClass8_1.<GetAsyncSteps>b__4(RequestAsyncResult thisPtr, IAsyncResult r)\r\n   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at Microsoft.ServiceBus.Common.ExceptionExtensions.Rethrow(Exception exception)\r\n   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)\r\n   at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)\r\n   at Microsoft.ServiceBus.Messaging.Sbmp.RedirectBindingElement.RedirectContainerChannelFactory`1.RedirectContainerSessionChannel.EndRequest(IAsyncResult result)\r\n   at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.<>c.<GetAsyncSteps>b__9_3(RequestAsyncResult thisPtr, IAsyncResult r)\r\n   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at Microsoft.ServiceBus.Common.ExceptionExtensions.Rethrow(Exception exception)\r\n   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)\r\n   at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)\r\n   at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.EndRequest(IAsyncResult result)\r\n   at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.EndReceiveCommand(IAsyncResult result, IEnumerable`1& messages)\r\n   --- End of inner exception stack trace ---\r\n   at Microsoft.ServiceBus.Common.ExceptionExtensions.ThrowException(Exception exception)\r\n   at Microsoft.ServiceBus.Common.ExceptionExtensions.Rethrow(Exception exception)\r\n   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)\r\n   at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)\r\n   at Microsoft.ServiceBus.Messaging.MessageReceiver.RetryReceiveAsyncResult.TryReceiveEnd(IAsyncResult r, IEnumerable`1& messages)\r\n   at Microsoft.ServiceBus.Messaging.MessageReceiver.EndTryReceive(IAsyncResult result, IEnumerable`1& messages)\r\n   at Microsoft.ServiceBus.Messaging.MessageReceiver.EndReceiveBatch(IAsyncResult result)\r\n   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()\r\n   at Relativity.ServiceBus.MicrosoftProvider.Subscriber`1.<ReceiveBatchAsync>d__26.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n   at Relativity.ServiceBus.MicrosoftProvider.Subscriber`1.<ReceiveBatchAsync>d__25.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()\r\n   at Relativity.ServiceBus.Contracts.Subscriber`1.<>c__DisplayClass17_0.<<ReceiveBatchAsync>b__0>d.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()\r\n   at Relativity.ServiceBus.Contracts.Exceptions.ExceptionHandling.ExceptionPolicy.<ExecuteAsync>d__5`1.MoveNext()\r\n   --- End of inner exception stack trace ---\r\n   at Relativity.ServiceBus.Contracts.Exceptions.ExceptionHandling.ExceptionPolicy.<ExecuteAsync>d__5`1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()\r\n   at Relativity.ServiceBus.Contracts.Subscriber`1.<ReceiveBatchAsync>d__17.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n   at Relativity.ServiceBus.Patterns.Containers.BatchedMessagePump`1.<SafeReceiveMessageBatchAsync>d__16.MoveNext()",
      "Properties": {
        "typeName": "DynamicReviewDocumentMessage",
        "OperationContext": {
          "ExecutingAgent": "Active Learning Worker"
        },
        "OperationID": "|aad3c000-4152151a479b8803.",
        "SourceContext": "Analytics.ActiveLearning.Agents.MessageHandlers.BaseMessageHandlers.BatchedMessageHandlerBase`1[[Relativity.Core.DTO.DynamicReviewDocumentMessage, Relativity.Core, Version=47.2.6.0, Culture=neutral, PublicKeyToken=null]]",
        "SourceID": "a2c19d7b-1376-45cc-a8e4-14d611fb29be",
        "MachineName": "ss025agt000009",
        "AppDomain": 55,
        "Application": "fba7cd7d-2388-4f39-bd0a-8f92b626cbc9",
        "SubSystem": "CustomAgent",
        "System": "Agent",
        "ProcessId": 4336
      }
    }

Log lifespan

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:

  • Deleting - indicates that the row is being deleted.
  • Expired - indicates that the View and Download (Azure) is expired. The link no longer exists in View and Download (Azure) field.