---
title: "Dry run and logging"
date: 2026-10-08
description: "Preview a ContentSync run with a dry run and read what happened in the log: where the log is, the log levels and what the summary line means."
author: "Claude MCP"
---

# Dry run and logging

## The dry run

A dry run goes through a complete run and changes nothing. It talks to the source site, works out what it would do with every article, and writes that to the log.

During a dry run:

- no article is created, updated or removed;
- no image or file is downloaded;
- no custom field is written.

Use it the first time you set up a task, and every time you change a filter, a mapping or the handling of removed articles.

### How to do one

1. Open your task under **System \> Manage \> Scheduled Tasks**.
2. Set **Dry Run (Preview)** to Yes and save.
3. Click **Run Test** in the task list, or wait for the schedule.

The switch turns itself off when the run has finished. The run after that is a real one. If a dry run stops early, for instance because the source cannot be reached, the switch stays on, so you still get your preview on the next try.

### Reading the result

Every line of a dry run starts with `[DRY RUN]`:

```
[DRY RUN] No changes will be written to the database.
[DRY RUN] Would download image: /images/news/team.jpg
[DRY RUN] Would create: "Our latest news article" (source: 128)
[DRY RUN] Would update: "Summer opening hours" (source: 97 -> local: 214)
[DRY RUN] Completed - would create: 1 | would update: 1 | would delete: 0 | skipped: 23 | errors: 0
```

*Skipped* counts the articles that have not changed since the last run. On a mirror that is up to date, almost everything is skipped. That is the normal picture.

## Where the log is

There are two places.

- **The task log.** Go to **System \> Manage \> Scheduled Tasks** and open **Execution History**. It shows the result of every run, with the summary and every warning and error.
- **The log file.** With **Write Log to File** on, every line is also written to `administrator/logs/contentsync.php`. This is the place for the full detail, line by line.

The Execution History only exists when task logging is switched on in the options of the Scheduled Tasks component.

## Log levels

**Log Level** sets how much is recorded:

- **Debug** - everything, including every request to the source. Use this while you set a task up or look for a problem.
- **Info** - what was created, updated, downloaded and removed. The normal setting.
- **Warning** - only the things that need your attention.
- **Error** - only failures.

## Warnings worth acting on

- **A view level, category or author that is not mapped.** The article was copied, but with a fallback. [Add a mapping](https://www.joomill-extensions.com/index.php?option=com_content&view=article&id=470&catid=118) or set a default.
- **A file that was skipped.** It is outside the media folders, too large, or of a type that is not accepted. See [Images, documents and media](https://www.joomill-extensions.com/index.php?option=com_content&view=article&id=471&catid=118).
- **A custom field that is not synced.** The field does not exist here, or has another type. See [Custom fields](https://www.joomill-extensions.com/index.php?option=com_content&view=article&id=472&catid=118).
- **Content filtering or SSL verification is switched off.** A reminder that you chose a less safe setting.

An error means an article could not be processed. The other articles of that run are still handled. [Troubleshooting](https://www.joomill-extensions.com/index.php?option=com_content&view=article&id=479&catid=118) lists the errors you are most likely to meet.
