
= Logging
:description: Learn how logging works in {page-component-title}, including logging level options.

{page-component-title} stores logs under the name of the daemon that was acting on a process (for example, logs for xref:deep-dive/service-assurance/introduction.adoc[service assurance checks] that are run by pollerd are stored in `pollerd.log`).
Log files are available in `$\{OPENNMS_HOME}/logs`, which is a symlink to `/var/log/opennms`.
See the xref:reference:daemons/introduction.adoc[list of daemons] for relevant log file names.

== Change logging

{page-component-title} uses the https://logging.apache.org/log4j/[Apache Log4j] framework to manage how logs are written, structured, and rotated.
The log configuration file is available in `$\{OPENNMS_HOME}/etc/opennms/log4j2.xml`.
The corresponding configurations are reflected in the `configuration/loggers/root/DynamicThresholdFilter/KeyValuePair` XML tree path.

The default logging level is `WARN`; for troubleshooting, we recommend that you use `DEBUG`.
Each daemon can have an individual logging level.
See the table below for a list of available logging levels.
Changes to logging levels are applied immediately, and do not require any service or daemon restarts.

IMPORTANT: Remember to reset the logging level to `WARN` after changing it to a higher severity.
Depending on the scale, {page-component-title} can generate a large number of logs, which requires more disk space.

=== Logging levels

[caption=]
.Service daemon logging level options
[cols="1,3"]
|===
| Level | Description

| INFO
| Anything that might be useful for the average user to determine the current general behavior or state of the system.

| WARN
| Messages related to code that has a failure that may be temporary or recoverable, or code that is misconfigured but can continue running in a regressed state.
This is the recommended default log level.

| ERROR
| Only situations that cause code to stop working and become unrecoverable.

| DEBUG
| Additional information that can help diagnose issues.

| TRACE
| Additional information that is often useful only to developers.
This mode outputs very detailed logs, and can cause performance issues if left enabled; use it sparingly, and only as necessary.
|===
