Java
- Logging framework: SLF4J (Simple Logging Facade for Java)
Maven dependency: (version managed by our maven parent project pom.xml)
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency>
How to use:
// import required classes import org.slf4j.Logger; import org.slf4j.LoggerFactory; // define logger private static final Logger LOGGER = LoggerFactory.getLogger(AuthenticationServiceImpl.class); // use in code try { // logic } catch (final StorageException e) { final String message = "(" + accountId + ") fail."; LOGGER.error(message, e); throw new AuthenticationServiceException(message, e); }
FATAL logging level: (marker usage example)
// import utility import net.bolbat.utils.logging.LoggingUtils; // use in code try { // logic } catch (final ManagerException e) { final String message = "Can't initialize persistence service."; LOGGER.error(LoggingUtils.FATAL, message, e); throw new ServiceInstantiationException(message, e); }
- SLF4J API implementations:
- default no-operation (NOP) logger, included in slf4j-api
logback: (version managed by our maven parent project pom.xml)
maven dependency<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency>
apache log4j: (version managed by our maven parent project pom.xml)
maven dependency<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency>
apache commons-logging: (version managed by our maven parent project pom.xml)
maven dependency<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jcl</artifactId> </dependency>
java logging (version managed by our maven parent project pom.xml)
maven dependency<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> </dependency>
- How to use for JUnit's without real dependency to logger implementation
Add maven dependency only for testing scope (version managed by our maven parent project pom.xml)
logback implementation example<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <scope>test</scope> </dependency>
Configure logger (logback example configuration)