# 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
  
  
  <code>Trace {"message":{"DisplayName":"Message box","State":"Executing","Activity":"UiPath.Dialog.Activities.MessageBox","Arguments":{"Caption":"","Text":"String
                                            in message BOX"}...Trace {"message":{"DisplayName":"Message box","State":"Closed","Activity":"UiPath.Dialog.Activities.MessageBox","Arguments":{"Caption":"","Text":"String
                                            in message BOX","ChosenButton":"Ok"}</code>
  
  
  Yes
  
  
  No
  
  
  Yes
  
  
  
  
  Verbose
  
  
  Variables
  
  
  <code>"Variables":{"NewTransaction":"False"}}</code>
  
  
  Yes
  
  
  No
  
  
  Yes
  
  
  
  
  Verbose
  
  
  Arguments (properties)
  
  
  <code>"Arguments":{"Caption":"","Text":"String in message BOX","ChosenButton":"Ok"}</code>
  
  
  Yes
  
  
  No
  
  
  Yes
  
  
  
  
  Trace
  
  
  Activities
  
  
  <code>Trace {"message":{"DisplayName":"Main","State":"Executing","Activity":"System.Activities.DynamicActivity"}Trace {"message":{"DisplayName":"Main","State":"Executing","Activity":"System.Activities.Statements.Flowchart"}</code>
  
  
  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.
:::
