Learn all about Log4j logging hierarchy order. Our Apache Support team is here to help you with your questions and concerns.
All About Log4j Logging Hierarchy Order
Logging plays a key role in application development and maintenance. It helps developers and administrators track execution flow, identify errors, and monitor system health.
Log4j is a popular Java logging framework. It offers multiple logging levels to categorize log messages by severity. Let’s break them down!
The Log4j Logging Levels
Here’s a quick look at the standard Log4j logging levels, ordered by priority from lowest to highest:
- TRACE:
The most fine-grained level, it is used for detailed debugging. It logs more information than DEBUG and is particularly helpful when diagnosing tricky issues.
- DEBUG:
It is slightly less detailed than TRACE. Typically used to log the application’s internal state, it is useful for debugging during development and testing.
- INFO:
Provides general information about application progress, such as server startups, incoming requests, or configuration details. Suitable for understanding the high-level flow of the program.
- WARN:
Logs potentially harmful situations. Examples include network glitches or resource limits approaching their threshold. These messages help in preemptive problem detection.
- ERROR:
Captures serious issues that affect program execution, like failed operations or exceptions. It signals something has gone wrong but doesn’t necessarily mean the application will crash.
- FATAL:
This level represents the most severe problems, often leading to application termination. Use it when the program cannot continue to run.
- ALL:
The lowest rank, enabling all log messages. Rarely used in practice.
- OFF:
The highest rank, disabling all logging. Typically used only to silence logs completely.
How Log4j Levels Work
In Log4j, loggers operate based on a threshold — a filter that determines which events get logged based on their severity. A logger will only log events equal to or more severe than its set threshold.
- A threshold of OFF means no logs are recorded.
- A threshold of FATAL only records FATAL logs.
- A threshold of ERROR captures ERROR and FATAL logs.
- A threshold of WARN logs WARN, ERROR, and FATAL.
- A threshold of INFO includes INFO, WARN, ERROR, and FATAL.
- A threshold of DEBUG logs everything except TRACE.
- A threshold of TRACE captures all logs.
- A threshold of ALL means absolutely every log event is recorded.
Here’s the Log4j level priority in descending order:
TRACE < DEBUG < INFO < WARN < ERROR < FATAL
For example, if we set the logger level to INFO, only INFO, WARN, ERROR and FATAL messages will be recorded — but DEBUG and TRACE will be ignored.
Best Practices for Using Log4j Levels
-
- Use DEBUG or TRACE for detailed diagnostics.
- Stick to INFO or WARN to monitor health without overwhelming logs.
- Set up alerts for ERROR and FATAL events to catch critical failures.
- ALL and OFF are extreme options — rarely needed outside debugging or silencing logs.
[Need assistance with a different issue? Our team is available 24/7.]
Conclusion
Understanding Log4j levels is key to effective logging. By choosing the correct level, we can balance gathering useful data and keeping logs manageable.
In brief, our Support Experts introduced us to Log4j logging hierarchy order.
0 Comments