# Logging Levels

> | Logging Level | Default Logs | User-Defined Logs |
| --- | --- | --- |
| **Off** | None | None |
| **Critical** | All messages logged with Critical level or higher. | All messages logged with Critical level or higher. |
| **Error** | All messages logged with Error level or higher. | All messages logged with Error level or higher. |
| **Warning** | All messages logged with Warning or higher. | All messages logged with Warning or higher. |
| **Information** | All messages logged with Information or higher. | All messages logged with Information or higher. |
| **Trace** | All messages logged with Trace level or higher. | All messages logged with Trace level or higher. |
| **Verbose** | All messages logged with Trace level and Workflow Tracking logs. | All messages logged with Trace level. |

## Logging Levels in UiPath

| Logging Level | Default Logs | User-Defined Logs |
| --- | --- | --- |
| **Off** | None | None |
| **Critical** | All messages logged with Critical level or higher. | All messages logged with Critical level or higher. |
| **Error** | All messages logged with Error level or higher. | All messages logged with Error level or higher. |
| **Warning** | All messages logged with Warning or higher. | All messages logged with Warning or higher. |
| **Information** | All messages logged with Information or higher. | All messages logged with Information or higher. |
| **Trace** | All messages logged with Trace level or higher. | All messages logged with Trace level or higher. |
| **Verbose** | All messages logged with Trace level and Workflow Tracking logs. | All messages logged with Trace level. |

The **Verbose** level logs a message for both the activity **start** and **end**, plus the values of the variables and arguments that are used.

By default, the Verbose level includes:

* **Execution Started** log entry - generated every time a process is started.
* **Execution Ended** log entry - generated every time a process is finalized.
* **Transaction Started** log entry - generated every time a transaction item is obtained by the robot from Orchestrator.
* **Transaction Ended** log entry - generated every time the robot sets the transaction status to either Success or Failed.
* **Activity Information** log entry - generated every time an activity is **started**,**faulted** or **finished** inside a workflow.
  :::note
  The priority order of the log types is: **Verbose** &lt; **Trace** &lt; **Information** &lt; **Warning** &lt; **Error** &lt; **Critical** &lt; **Off**.
  :::
  
  <colgroup>
  <col/>
  <col/>
  <col/>
  <col/>
  <col/>
  <col/>
  </colgroup>
  
  
   
    
     Log Level
    
   
   
    
     Logged
    
   
   
    
     Example / Comment
    
   
   
    
     Log File
    
   
   
    
     Output Panel
    
   
   
    
     Orchestrator Log page
    
   
  
  
  
  
   
    
     
      Verbose
     
    
   
   
    
     
      Activities
     
    
   
   
    
     Trace {"message":{"DisplayName":"Message
                                       box","State":"Executing","Activity":"UiPath.Dialog.Activities.MessageBox","Arguments":{"Caption":"","Text":"String
                                       in message BOX", "ChosenButton":"Ok"}
    
   
   
    
     Yes
    
   
   
    
     No
    
   
   
    
     Yes
    
   
  
  
   
    
     
      Verbose
     
    
   
   
    
     
      Variables
     
    
   
   
    
     "Variables":{"NewTransaction":"False"}}
    
   
   
    
     Yes
    
   
   
    
     No
    
   
   
    
     Yes
    
   
  
  
   
    
     
      Verbose
     
    
   
   
    
     
      Arguments (properties)
     
    
   
   
    
     "Arguments":{"Caption":"","Text":"String in message BOX","ChosenButton":"Ok"}
    
   
   
    
     Yes
    
   
   
    
     No
    
   
   
    
     Yes
    
   
  
  
   
    
     
      Trace
     
    
   
   
    
     
      Activities
     
    
   
   
    
     Trace
                                       {"message":{"DisplayName":"Main","State":"Executing","Activity":"System.Activities.DynamicActivity"}
    
   
   
    
     Yes
    
   
   
    
     No
    
   
   
    
     Yes
    
   
  
  
   
    
     
      Information
     
    
   
   
    
     
      WriteLine
     
    
    
     
      Log Message
     
    
   
   
    
     <code>
      Info {"message":"message from activity"}
     </code>
    
    Note: Except messages logged with Trace level set in activity.
   
   
    
     Yes
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
  
  
   
    
     
      Warning
     
    
   
   
    
     
      Warnings
     
    
   
   
    
     <code>
      Warn {"message":"Warning from log message activity"}
     </code>
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
  
  
   
    
     
      Warning
     
    
   
   
    
     
      Errors
     
    
   
   
    
     <code>
      Error {"message":"Error from log message activity"}
     </code>
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
  
  
   
    
     
      Warning
     
    
   
   
    
     
      Critical
     
    
   
   
    
     Critical Errors
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
  
  
   
    
     
      Error
     
    
   
   
    
     
      Errors
     
    
   
   
    
     <code>
      Error {"message":"Error from log message activity"}
     </code>
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
  
  
   
    
     
      Error
     
    
   
   
    
     
      Critical
     
    
    
     
      Fatal
     
    
   
   
    
     Critical Errors
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
  
  
   
    
     
      Critical
     
    
   
   
    
     
      Critical
     
    
    
     
      Fatal
     
    
   
   
    
     Critical Errors
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
   
    
     Yes
    
   
  
  
   
    
     
      OFF
     
    
   
   
    
     n/a
    
   
   
    
     n/a
    
   
   
    
     No
    
   
   
    
     No
    
   
   
    
     No
    
   
  
  
  

## Log Message Types

There are several possible occurrences of log messages, depending on the event that is logged, as follows:

### Default Logs

Generated by default when the execution of a project starts and ends, when a system error occurs and the execution stops, or when the logging settings are configured to log the execution of every activity.

:::note
These logs have the `Default` value in the `logType` field.
:::

The events logged by this category are:

* **Execution Start** is generated every time a process is started. This is logged starting with the **Information** logging level.
* **Execution End** is generated every time a process is finalized. This is logged starting with the **Information** logging level.
* **Transaction Start** is generated every time a transaction within a process is started. This is logged starting with the **Information** logging level.
* **Transaction End** is generated every time a transaction within a process is finalized. This is logged starting with the **Information** logging level.
* **Error Log** is generated every time the execution encounters an error and stops. This is logged starting with the **Error** logging level.
* **Debugging Log** is generated if the Robot Logging Setting is set to Verbose and contains, activity names, types, variable values, arguments etc. This is logged starting with the **Trace** logging level.

### User-Defined Logs

Generated according to the process designed by the user in Studio, when using the **Log Message** activity or the **Write Line** activity.

:::note
These logs have the `User` value in the `logType` field.
:::

## Log Fields

There are multiple types of log fields that can be found throughout the above log message types. These can be classified as follows:

### Default Fields

These log fields are present in all execution type logs, such as SQL (if configured), Elasticsearch (if configured), and the default EventViewer Logs:

* `Message` - The log message.
* `Level` - Defines the log severity.
* `Timestamp` - The exact date and time the action was performed.
* `FileName` - The name of the `.xaml` file being executed.
* `jobId` - The key of the job running the process.
* `processName` - The name of the process that triggered the logging.
* `processVersion` - The version number of the process.
* `windowsIdentity` - The name of the user that performed the action that was logged.
* `robotName` - The name of the robot (as defined in Orchestrator).

In an environment with multiple Robots on a machine which are connected to Orchestrator, the Event Viewer logs might display the following message: “Current user did not login to the application!". This occurs only if you remove a Robot that still had logs to send to Orchestrator.

:::note
The `processName` and `processVersion` fields do not appear in logs if the process is run locally, without being connected to Orchestrator.
:::

### Type-specific Fields

These logs are present depending on the log type:

#### Execution End

* `totalExecutionTimeInSeconds`
* `totalExecutionTime`

#### Transaction Start

* `queueName`
* `transactionID`
* `transactionState`

#### Transaction End

* `queueName`
* `transactionID`
* `transactionState`
* `transactionStatus`
* `transactionExecutionTime`
* `processingExceptionType`
* `processingExceptionReason`
* `queueItemReviewStatus`
* `queueItemPriority`

#### Debugging Log

* `activityInfo`, which is a JSON message with the following fields:
  + `DisplayName`
  + `State` (Faulted, Closed, Executing)
  + `Activity`
  + `Variables`
  + `Arguments`
:::note
Only `totalExecutionTimeInSeconds`, `totalExecutionTime` and `queueName` are always present in the log messages. `Variables` and `Arguments` usually have sub-fields.
:::

### User-defined Fields

These fields are defined in Studio by using the **Add Log Fields** activity and appear in all subsequent logs after the activity is generated, unless they are removed by the **Remove Log Fields** activity.

:::note
Creating custom log fields that have the same name as a default log field causes the logging process to become corrupted and may cause issues in the workflow you are running. For example, creating a custom log field called `jobId` causes this issue, as `jobId` is a log field that is generated by default.
:::
