---
id: logging
title: "Logging"
---
Apache Druid services emit logs that to help you debug.
The same services also emit periodic [metrics](../configuration/index.md#enabling-metrics) about their state.
To disable metric info logs set the following runtime property: `-Ddruid.emitter.logging.logLevel=debug`.
Druid uses [log4j2](http://logging.apache.org/log4j/2.x/) for logging.
The default configuration file log4j2.xml ships with Druid at the following path: `conf/druid/{config}/_common/log4j2.xml`.
By default, Druid uses `RollingRandomAccessFile` for rollover daily, and keeps log files up to 7 days.
If that's not suitable in your case, modify the `log4j2.xml` accordingly.
The following example log4j2.xml is based upon the micro quickstart:
```
```
Peons always output logs to standard output. Middle Managers redirect task logs from standard output to
[long-term storage](index.md#log-long-term-storage).
:::info
NOTE:
Druid shares the log4j configuration file among all services, including task peon processes.
However, you must define a console appender in the logger for your peon processes.
If you don't define a console appender, Druid creates and configures a new console appender
that retains the log level, such as `info` or `warn`, but does not retain any other appender
configuration, including non-console ones.
:::
## Log directory
The included log4j2.xml configuration for Druid and ZooKeeper writes logs to the `log` directory at the root of the distribution.
If you want to change the log directory, set the environment variable `DRUID_LOG_DIR` to the right directory before you start Druid.
## All-in-one start commands
If you use one of the all-in-one start commands, such as `bin/start-micro-quickstart`, the default configuration for each service has two kinds of log files.
Log4j2 writes the main log file and rotates it periodically.
For example, `log/historical.log`.
The secondary log file contains anything that is written by the component
directly to standard output or standard error without going through log4j2.
For example, `log/historical.stdout.log`.
This consists mainly of messages from the
Java runtime itself.
This file is not rotated, but it is generally small due to the low volume of messages.
If necessary, you can truncate it using the Linux command `truncate --size 0 log/historical.stdout.log`.
## Set the logs to asynchronously write
If your logs are really chatty, you can set them to write asynchronously.
The following example shows a `log4j2.xml` that configures some of the more chatty classes to write asynchronously:
```
```