---
title: Connector logs
description: It can be difficult to determine if the root cause of a problem is at the ICF or connector level, or at the application level.
component: openicf
page_id: openicf:connector-reference:icf-logs
canonical_url: https://docs.pingidentity.com/openicf/connector-reference/icf-logs.html
keywords: ["Logs", "Troubleshooting"]
section_ids:
  logging_levels: Logging levels
  enable_idm_connector_logging: Enable IDM connector logging
  java_rcs_logging: Java RCS logging
  icf-logging-config-file: Logging configuration file
  enable_java_rcs_debug_logging: Enable Java RCS debug logging
  icf-rolling-log-policy: Rolling log policy
  troubleshooting_java_rcs_windows_logging: Troubleshooting Java RCS Windows logging
  net_rcs_logging: .NET RCS logging
---

# Connector logs

|   |                                             |
| - | ------------------------------------------- |
|   | By default, logging is not enabled for RCS. |

It can be difficult to determine if the root cause of a problem is at the ICF or connector level, or at the application level.

The ICF API sets the `LoggingProxy` at a very high level. You can consider the Logging Proxy as the *border* between the application (IDM) and the ICF framework.

## Logging levels

Finer logging levels generate more noise but can be helpful when troubleshooting:

* `SEVERE` (highest value, least noise)

* `WARNING`

* `INFO`

* `CONFIG`

* `FINE`

* `FINER`

* `FINEST` (lowest value, most noise)

## Enable IDM connector logging

If you are using ICF connectors bundled with IDM, you can adjust the log levels for specific parts of the system in the `path/to/openidm/conf/logging.properties` file. To start logging, enable the Logging Proxy and set the level for all or some operations:

Enable the LoggingProxy

```properties
org.identityconnectors.framework.impl.api.LoggingProxy.level=FINE
```

Log all operations

```properties
org.identityconnectors.framework.api.operations.level=FINE
```

Log specific operations

```properties
org.identityconnectors.framework.api.operations.CreateApiOp.level=FINE
org.identityconnectors.framework.api.operations.UpdateApiOp.level=FINE
org.identityconnectors.framework.api.operations.DeleteApiOp.level=FINE
```

You can log any of the following operations:

* `AuthenticationApiOp`

* `CreateApiOp`

* `DeleteApiOp`

* `GetApiOp`

* `ResolveUsernameApiOp`

* `SchemaApiOp`

* `ScriptOnConnectorApiOp`

* `ScriptOnResourceApiOp`

* `SearchApiOp`

* `SyncApiOp`

* `TestApiOp`

* `UpdateApiOp`

* `ValidateApiOp`

## Java RCS logging

### Logging configuration file

The default location for the logging configuration file is `/path/to/openicf/conf/logback.xml`.

You can set the configuration file location using the `LOGGING_CONFIG` system property. For example, you can add the system property to the `OPENICF_OPTS` environment variable before starting RCS:

```shell
export LOGGING_CONFIG="-Dlogback.configurationFile=/path/to/your/logback.xml"
```

### Enable Java RCS debug logging

|   |                                                                                                                                                            |
| - | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | For additional Java RCS debug logging information, refer to this [Knowledge Base article](https://backstage.forgerock.com/knowledge/kb/article/a38411747). |

To enable debug logging in the remote Java Connector Server, uncomment the following line in the [logging configuration file](#icf-logging-config-file):

```xml
<logger name="org.identityconnectors.framework.impl.api.LoggingProxy" level="DEBUG" additivity="false">
    <appender-ref ref="TRACE-FILE"/>
</logger>
<logger name="org.identityconnectors.framework.api.operations" level="DEBUG" additivity="false">
    <appender-ref ref="TRACE-FILE"/>
</logger>
```

### Rolling log policy

To change the total size for all log files or maximum time length before a log rolls over to a new file, edit `conf/logback.xml` and update the applicable `maxHistory` and `totalSizeCap` properties. The default rolling log policy has the following configuration:

```xml
<maxHistory>30</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
```

To roll log files based on both time and file size, configure the `SizeAndTimeBasedRollingPolicy`. This policy requires a `maxFileSize` property to define the maximum size of a single log file before a rollover occurs. Using this policy ensures individual log files remain a manageable size while still respecting your overall `maxHistory` and `totalSizeCap` retention limits.

Learn more in the Logback documentation:

* [maxHistory](https://logback.qos.ch/manual/appenders.html#tbrpMaxHistory)

* [totalSizeCap](https://logback.qos.ch/manual/appenders.html#tbrpTotalSizeCap)

* [SizeAndTimeBasedRollingPolicy](https://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy)

### Troubleshooting Java RCS Windows logging

If you previously started the RCS using `/run`, the user account that entered the command owns the log files in `openicf\logs\`. When you install and start the RCS as a Windows service, the Windows service account doesn't have write access to those log files. The service starts without error but produces no log output.

To avoid this issue, use one of the following workarounds before running `/install`:

* Delete the `openicf\logs\` directory. The RCS recreates it with the correct permissions when the service starts.

* In the Windows Services management console, open the RCS service properties, click the Log On tab, and select Local System Account.

  |   |                                                                                                                                                                     |
  | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  |   | The Local System Account has broad local system privileges. For production deployments, grant the existing service account write access to `openicf\logs\` instead. |

Learn more about [installing the Java RCS on Windows](java-server.html#java-connector-server-windows).

## .NET RCS logging

To enable logging in the .NET RCS, edit the `ConnectorServer.exe.config` configuration file, and set the `logging.proxy` key to `true`:

```xml
<add key="logging.proxy" value="true"/>
```
