# ========== Log4j2 Properties Configuration ========== status = warn name = JoobyPortfolioConfig property.basePath = logs # ========== Appenders ========== # Console appender.console.type = Console appender.console.name = ConsoleAppender appender.console.layout.type = PatternLayout appender.console.layout.pattern = %d{HH:mm:ss.SSS} [%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.type = LevelRangeFilter appender.info.filter.levelMin = debug appender.info.filter.levelMax = info appender.info.filter.onMatch = ACCEPT appender.info.filter.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 (Ebean SQL) 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 (Tu paquete base) 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 # Ebean SQL (Sustituye a Hibernate SQL) # io.ebean.SQL muestra las sentencias ejecutadas logger.ebean.name = io.ebean.SQL logger.ebean.level = debug logger.ebean.additivity = false logger.ebean.appenderRefs = db logger.ebean.appenderRef.db.ref = DBFileAppender # Ebean TX (Opcional: muestra transacciones) logger.ebean_tx.name = io.ebean.TX logger.ebean_tx.level = info logger.ebean_tx.additivity = false logger.ebean_tx.appenderRefs = db logger.ebean_tx.appenderRef.db.ref = DBFileAppender # Jooby Framework logs logger.jooby.name = io.jooby logger.jooby.level = info logger.jooby.additivity = false logger.jooby.appenderRefs = console logger.jooby.appenderRef.console.ref = ConsoleAppender # ========== 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