diff --git a/application/pom.xml b/application/pom.xml
index 280351b..d4a0db7 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -16,5 +16,12 @@
jakarta.validation
jakarta.validation-api
+
+
+ org.slf4j
+ slf4j-api
+ 2.0.13
+
+
\ No newline at end of file
diff --git a/bootstrap/pom.xml b/bootstrap/pom.xml
index 981dac1..53ab4c6 100644
--- a/bootstrap/pom.xml
+++ b/bootstrap/pom.xml
@@ -33,10 +33,22 @@
${springdoc.version}
+
+ org.slf4j
+ slf4j-api
+ 2.0.13
+
+
org.springframework.boot
spring-boot-starter-actuator
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
diff --git a/domain/pom.xml b/domain/pom.xml
index 03f98a0..5e99338 100644
--- a/domain/pom.xml
+++ b/domain/pom.xml
@@ -16,5 +16,10 @@
jakarta.validation
jakarta.validation-api
+
+ org.slf4j
+ slf4j-api
+ 2.0.13
+
\ No newline at end of file
diff --git a/infrastructure/pom.xml b/infrastructure/pom.xml
index 11e20aa..12257c7 100644
--- a/infrastructure/pom.xml
+++ b/infrastructure/pom.xml
@@ -23,6 +23,22 @@
org.springframework.boot
spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
org.springframework.boot
@@ -39,6 +55,80 @@
0.10.2
+
+ com.google.http-client
+ google-http-client-jackson2
+ 1.43.0
+
+
+
+
+ com.google.api-client
+ google-api-client
+ 1.35.2
+
+
+
+ com.google.oauth-client
+ google-oauth-client-jetty
+ 1.39.0
+
+
+
+ com.google.apis
+ google-api-services-gmail
+ v1-rev110-1.25.0
+
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.13
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+
+ javax.mail
+ javax.mail-api
+ 1.6.2
+
+
+
+ com.sun.mail
+ jakarta.mail
+ 2.0.2
+
+
+
+ com.sun.activation
+ jakarta.activation
+ 2.0.1
+
+
+
+ org.apache.logging.log4j
+ log4j-core
+ 2.24.1
+
+
+
+ org.apache.logging.log4j
+ log4j-slf4j2-impl
+ 2.24.1
+
+
+
+ org.apache.logging.log4j
+ log4j-api
+ 2.24.1
+
+
+
org.mapstruct
@@ -52,4 +142,11 @@
true
+
+
+ maven_central
+ Maven Central
+ https://repo.maven.apache.org/maven2/
+
+
\ No newline at end of file
diff --git a/infrastructure/src/main/resources/log4j2.properties b/infrastructure/src/main/resources/log4j2.properties
new file mode 100644
index 0000000..e474e31
--- /dev/null
+++ b/infrastructure/src/main/resources/log4j2.properties
@@ -0,0 +1,99 @@
+# ========== Log4j2 Properties Configuration ==========
+status = error
+name = PropertiesConfig
+
+property.basePath = logs
+
+# ========== Appenders ==========
+
+# Console
+appender.console.type = Console
+appender.console.name = ConsoleAppender
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = [%d{yyyy-MM-dd HH:mm:ss}] [%t] %-5level %logger{36} - %msg%n
+
+# Rolling File INFO+ (DEBUG e INFO)
+appender.info.type = RollingFile
+appender.info.name = InfoFileAppender
+appender.info.fileName = ${basePath}/info.log
+appender.info.filePattern = ${basePath}/info-%d{yyyy-MM-dd}-%i.log.gz
+appender.info.layout.type = PatternLayout
+appender.info.layout.pattern = [%d{yyyy-MM-dd HH:mm:ss}] [%t] %-5level %logger{36} - %msg%n
+appender.info.policies.type = Policies
+appender.info.policies.time.type = TimeBasedTriggeringPolicy
+appender.info.policies.time.interval = 1
+appender.info.policies.size.type = SizeBasedTriggeringPolicy
+appender.info.policies.size.size = 10MB
+appender.info.filter.threshold.type = ThresholdFilter
+appender.info.filter.threshold.level = debug
+appender.info.filter.threshold.onMatch = ACCEPT
+appender.info.filter.threshold.onMismatch = DENY
+
+# Rolling File ERROR+ (ERROR y FATAL)
+appender.error.type = RollingFile
+appender.error.name = ErrorFileAppender
+appender.error.fileName = ${basePath}/error.log
+appender.error.filePattern = ${basePath}/error-%d{yyyy-MM-dd}-%i.log.gz
+appender.error.layout.type = PatternLayout
+appender.error.layout.pattern = [%d{yyyy-MM-dd HH:mm:ss}] [%t] %-5level %logger{36} - %msg%n
+appender.error.policies.type = Policies
+appender.error.policies.time.type = TimeBasedTriggeringPolicy
+appender.error.policies.time.interval = 1
+appender.error.policies.size.type = SizeBasedTriggeringPolicy
+appender.error.policies.size.size = 10MB
+appender.error.filter.threshold.type = ThresholdFilter
+appender.error.filter.threshold.level = error
+appender.error.filter.threshold.onMatch = ACCEPT
+appender.error.filter.threshold.onMismatch = DENY
+
+# Rolling File for Database logs (Hibernate / JDBC)
+appender.db.type = RollingFile
+appender.db.name = DBFileAppender
+appender.db.fileName = ${basePath}/db.log
+appender.db.filePattern = ${basePath}/db-%d{yyyy-MM-dd}-%i.log.gz
+appender.db.layout.type = PatternLayout
+appender.db.layout.pattern = [%d{yyyy-MM-dd HH:mm:ss}] [%t] %-5level %logger{36} - %msg%n
+appender.db.policies.type = Policies
+appender.db.policies.time.type = TimeBasedTriggeringPolicy
+appender.db.policies.time.interval = 1
+appender.db.policies.size.type = SizeBasedTriggeringPolicy
+appender.db.policies.size.size = 10MB
+
+# ========== Loggers ==========
+
+# App logs
+logger.app.name = com.pablotj
+logger.app.level = debug
+logger.app.additivity = false
+logger.app.appenderRefs = console, info, error
+logger.app.appenderRef.console.ref = ConsoleAppender
+logger.app.appenderRef.info.ref = InfoFileAppender
+logger.app.appenderRef.error.ref = ErrorFileAppender
+
+# Hibernate SQL
+logger.hibernate.name = org.hibernate.SQL
+logger.hibernate.level = debug
+logger.hibernate.additivity = false
+logger.hibernate.appenderRefs = db
+logger.hibernate.appenderRef.db.ref = DBFileAppender
+
+# Hibernate parameter binding
+#logger.hibernate.type.name = org.hibernate.type.descriptor.sql.BasicBinder
+#logger.hibernate.type.level = trace
+#logger.hibernate.type.additivity = false
+#logger.hibernate.type.appenderRefs = db
+#logger.hibernate.type.appenderRef.db.ref = DBFileAppender
+
+# Spring JDBC Template logs
+#logger.spring.sql.name = org.springframework.jdbc.core.JdbcTemplate
+#logger.spring.sql.level = debug
+#logger.spring.sql.additivity = false
+#logger.spring.sql.appenderRefs = db
+#logger.spring.sql.appenderRef.db.ref = DBFileAppender
+
+# ========== Root Logger ==========
+rootLogger.level = info
+rootLogger.appenderRefs = console, info, error
+rootLogger.appenderRef.console.ref = ConsoleAppender
+rootLogger.appenderRef.info.ref = InfoFileAppender
+rootLogger.appenderRef.error.ref = ErrorFileAppender
\ No newline at end of file