logback grails log in different files
To configure logback in Grails to log in different files, follow these steps:
Create a new file called
logback.groovy
in thegrails-app/conf
directory if it doesn't exist already.Add the following configuration to
logback.groovy
to define separate appenders for different loggers:
import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.rolling.FixedWindowRollingPolicy
import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy
import ch.qos.logback.core.rolling.TimeBasedRollingPolicy
import ch.qos.logback.core.rolling.RollingFileAppender
appender("FILE1", RollingFileAppender) {
file = "/path/to/your/log/file1.log"
encoder(PatternLayoutEncoder) {
pattern = "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
}
rollingPolicy(FixedWindowRollingPolicy) {
fileNamePattern = "/path/to/your/log/file1.%i.log.zip"
minIndex = 1
maxIndex = 3
}
triggeringPolicy(SizeBasedTriggeringPolicy) {
maxFileSize = "10MB"
}
}
appender("FILE2", RollingFileAppender) {
file = "/path/to/your/log/file2.log"
encoder(PatternLayoutEncoder) {
pattern = "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
}
rollingPolicy(TimeBasedRollingPolicy) {
fileNamePattern = "/path/to/your/log/file2.%d{yyyy-MM-dd}.log"
}
}
logger("com.example.package1", INFO, ["FILE1"], false)
logger("com.example.package2", INFO, ["FILE2"], false)
Replace /path/to/your/log/
with the actual path to your log directory.
Save the
logback.groovy
configuration file.Ensure that the appropriate dependencies for logback are included in your
build.gradle
file:
dependencies {
...
implementation 'ch.qos.logback:logback-classic:1.2.3'
...
}
- Restart your Grails application for the changes to take effect.