<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api-scala_2.11</artifactId>
<version>2.14.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
</dependencies>
scala
import org.apache.logging.log4j.core.config.Configurator
import org.apache.logging.log4j.core.appender.rolling.file._
import org.apache.logging.log4j.core.layout.PatternLayout
object LogConfigurator {
def configureLog(): Unit = {
val rollingAppender = RollingFileAppender.newBuilder()
.withFileName("logs/application.log")
.withFilePattern("logs/application.%d{yyyy-MM-dd}.log.gz")
.withAppend(true)
.setName("RollingFile")
.setLayout(PatternLayout.newBuilder().withPattern("%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n").build())
.build()
val triggeringPolicy = TimeBasedTriggeringPolicy.newBuilder()
.withInterval(1)
.withModulate(true)
.build()
val policies = new CompositeTriggeringPolicy(new SizeBasedTriggeringPolicy(10 * 1024 * 1024), triggeringPolicy)
rollingAppender.withPolicy(policies)
rollingAppender.start()
Configurator.setRootLevel(Level.INFO)
Configurator.addAppender(rollingAppender)
}
}
scala
object Main {
def main(args: Array[String]): Unit = {
LogConfigurator.configureLog()
}
}