Comenzando con log4j2
En esta página
Instalación o Configuración
Esta sería una configuración básica en la que enviaremos todos los mensajes de registro a la consola y a un archivo de registro.
Comencemos con las bibliotecas. Usaré maven para eso:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
A continuación, escribiremos log4j2.properties (en este caso, usaré un archivo de propiedades). Lo pondremos en la ruta de contexto, en maven debería estar en la carpeta de recursos (src/main/resources en la mayoría de los casos)
name=PropertiesConfig
property.filename = logs
appenders = console, file
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=${filename}/propertieslogs.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
loggers=file
logger.file.name=com.es.form.studio
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
Para usar este ejemplo, deberá cambiar logger.file.name=com.es.form.studio para que apunte al paquete de su elección. Si no lo hace, el archivo no mostrará ningún registro.