---
title: "Logging"
linkTitle: "Logging"
weight: 30
---

Kopia maintains diagnostic logging for troubleshooting purposes. This documents describes parameters that can be set to configure logging:

### Log File Location

The location of log directory varies by operating system:

* On Linux - `~/.cache/kopia`
* On macOS - `~/Library/Logs/kopia`
* On Windows - `%LocalAppData%\kopia`

Log file location can be overridden by setting flag `--log-dir` or `KOPIA_LOG_DIR` environment
variable.

The log directory contains two subdirectories:

* `cli-logs` - contains one log file per each invocation of `kopia` binary and contains general-purpose logging and debugging information and may contain sensitive information like username, hostname, filenames, etc. Please sanitize contents of such log files before filing bug reports.

* `content-logs` - contains one log file per each invocation of `kopia` binary and contains low-level formatting logs but will not contain any sensitive data such as file names, hostnames, etc.

### Log Retention

Log retention can be configured using flags and environment variables.

| Flag                              | Environment Variable         | Default | Description
| --------------------------------- | ---------------------------- | ------- | --------------
| `--log-dir-max-files`             | `KOPIA_LOG_DIR_MAX_FILES`    | 1000    | Maximum number of log files to retain |
| `--log-dir-max-age`               | `KOPIA_LOG_DIR_MAX_AGE`      | 720h    | Maximum age of log files to retain |
| `--content-log-dir-max-files`     | `KOPIA_CONTENT_LOG_DIR_MAX_FILES` | 5000 | Maximum number of content log files to retain | 
| `--content-log-dir-max-age`       | `KOPIA_CONTENT_LOG_DIR_MAX_AGE` | 720h | Maximum age of content log files to retain |

### Controlling Log Level

The amount of logs can be controlled using log levels:

* `debug` - most detailed logs including potentially verbose debugging information
* `info` - normal output
* `warning` - errors and warnings only
* `error` - errors only

You can control how much data is written to console and log files by using flags:

* `--log-level` - sets log level for console output (defaults to `info`)
* `--file-log-level` - sets log level for file output (defaults to `debug`)

### Color Output

By default, console output will be colored to indicate different log levels, this can be disabled (useful when redirecting output to a file) with `--disable-color`. To force color colorized output when redirecting to a file use `--force-color`.

