Log4J
| Prev | Next |
Main steps
- If necessary, review presentation: Log4J
Add dependency on log4j in pom.xml file:
<dependencies>
...
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.23.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.23.1</version>
</dependency>
...
</dependencies>where ... are some other existing settings
Recompile project and regenerate settings for eclipse:
mvn clean compile eclipse:eclipseAdd file logger named file with file appender and layout format into configuration file src/main/resources/log4j2.properties:
- Folder of the log file should be logs folder inside project folder
- Name of log file should be test.log
e.g.:
...
# Direct log messages to file
logger.jtm.name = jtm.extra05.Log
logger.jtm.level = info
logger.jtm.additivity = false
logger.jtm.appenderRefs = file, stdout
logger.jtm.appenderRef.file.ref = file
logger.jtm.appenderRef.stdout.ref = stdout
...Set category filter settings in log4j2.properties file, that logger will show:
- INFO messages for jtm.extra10.Log class
- TRACE messages for jtm.extra10.Log$ExtLog class
e.g.:
...
logger.jtmExt.name = jtm.extra05.Log.ExtLog
logger.jtmExt.level = trace
logger.jtmExt.additivity = false
logger.jtmExt.appenderRefs = file, stdout
logger.jtmExt.appenderRef.file.ref = file
logger.jtmExt.appenderRef.stdout.ref = stdout
...- Review package jtm.extra05
Declare and initialize class logger in Log class:
private static final Logger log = LogManager.getLogger(Log.class);- Implement static methods to log trace, debug, info, warn, error, fatal which will write log messages with appropriate level, using the class logger.
- Implement method getLogger() which returns reference to used logger
In nested class ExtLog declare and initialize logger:
static final Logger log = LogManager.getLogger(ExtLog.class);- In internal class ExtLog implement static methods trace, debug, info, warn, error, fatal which will write log messages with appropriate level.
- Check that unit tests are passing
| Prev | Next |


