Skip to content

Commit dbd34bc

Browse files
authored
Merge pull request #1736 from steve-community/1734-migrate-to-spring-boot-switch-to-logback
switch from log4j2 to logback (#1734)
2 parents ebe81c3 + 24b6bb1 commit dbd34bc

File tree

12 files changed

+232
-234
lines changed

12 files changed

+232
-234
lines changed

pom.xml

Lines changed: 6 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
<jetty.version>12.0.17</jetty.version>
4545
<lombok.version>1.18.36</lombok.version>
4646
<jackson.version>2.18.3</jackson.version>
47+
<slf4j.version>2.0.17</slf4j.version>
4748
<plugin.license-maven.version>4.6</plugin.license-maven.version>
4849

4950
<!-- In Mysql: schema == database (http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_schema) -->
@@ -497,27 +498,13 @@
497498
<scope>import</scope>
498499
<type>pom</type>
499500
</dependency>
500-
<dependency>
501-
<groupId>org.apache.logging.log4j</groupId>
502-
<artifactId>log4j-bom</artifactId>
503-
<version>2.24.3</version>
504-
<scope>import</scope>
505-
<type>pom</type>
506-
</dependency>
507501
<dependency>
508502
<groupId>org.junit</groupId>
509503
<artifactId>junit-bom</artifactId>
510504
<version>5.12.1</version>
511505
<type>pom</type>
512506
<scope>import</scope>
513507
</dependency>
514-
<dependency>
515-
<groupId>org.slf4j</groupId>
516-
<artifactId>slf4j-bom</artifactId>
517-
<version>2.0.17</version>
518-
<type>pom</type>
519-
<scope>import</scope>
520-
</dependency>
521508
</dependencies>
522509
</dependencyManagement>
523510

@@ -656,34 +643,19 @@
656643

657644
<!-- Logging -->
658645
<dependency>
659-
<groupId>org.apache.logging.log4j</groupId>
660-
<artifactId>log4j-core</artifactId>
661-
</dependency>
662-
<dependency>
663-
<groupId>org.apache.logging.log4j</groupId>
664-
<artifactId>log4j-api</artifactId>
665-
</dependency>
666-
<dependency>
667-
<groupId>org.apache.logging.log4j</groupId>
668-
<artifactId>log4j-slf4j2-impl</artifactId>
669-
</dependency>
670-
<dependency>
671-
<groupId>org.apache.logging.log4j</groupId>
672-
<artifactId>log4j-web</artifactId>
673-
<scope>runtime</scope>
646+
<groupId>ch.qos.logback</groupId>
647+
<artifactId>logback-classic</artifactId>
648+
<version>1.5.18</version>
674649
</dependency>
675650
<dependency>
676651
<groupId>org.slf4j</groupId>
677652
<artifactId>slf4j-api</artifactId>
653+
<version>${slf4j.version}</version>
678654
</dependency>
679655
<dependency>
680656
<groupId>org.slf4j</groupId>
681657
<artifactId>jcl-over-slf4j</artifactId>
682-
</dependency>
683-
<dependency>
684-
<groupId>com.lmax</groupId>
685-
<artifactId>disruptor</artifactId>
686-
<version>3.4.4</version>
658+
<version>${slf4j.version}</version>
687659
</dependency>
688660

689661
<!-- CXF -->

src/main/java/de/rwth/idsg/steve/utils/LogFileRetriever.java

Lines changed: 12 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,17 @@
1818
*/
1919
package de.rwth.idsg.steve.utils;
2020

21+
import ch.qos.logback.classic.Logger;
22+
import ch.qos.logback.classic.spi.ILoggingEvent;
23+
import ch.qos.logback.core.Appender;
24+
import ch.qos.logback.core.FileAppender;
2125
import lombok.extern.slf4j.Slf4j;
22-
import org.apache.logging.log4j.LogManager;
23-
import org.apache.logging.log4j.core.Appender;
24-
import org.apache.logging.log4j.core.LoggerContext;
25-
import org.apache.logging.log4j.core.appender.FileAppender;
26-
import org.apache.logging.log4j.core.appender.MemoryMappedFileAppender;
27-
import org.apache.logging.log4j.core.appender.RandomAccessFileAppender;
28-
import org.apache.logging.log4j.core.appender.RollingFileAppender;
29-
import org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender;
30-
import org.apache.logging.log4j.core.config.Configuration;
26+
import org.slf4j.LoggerFactory;
3127

3228
import java.nio.file.Path;
3329
import java.nio.file.Paths;
3430
import java.util.ArrayList;
31+
import java.util.Iterator;
3532
import java.util.List;
3633
import java.util.Optional;
3734
import java.util.concurrent.ThreadLocalRandom;
@@ -92,39 +89,26 @@ private Path rollTheDice() {
9289
* by iterating over appenders.
9390
*/
9491
private List<Path> getActiveLogFilePaths() {
95-
LoggerContext context = (LoggerContext) LogManager.getContext(false);
96-
Configuration config = context.getConfiguration();
92+
Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
93+
Iterator<Appender<ILoggingEvent>> appenderIterator = logger.iteratorForAppenders();
9794

9895
List<Path> fileNameList = new ArrayList<>();
99-
for (Appender appender : config.getAppenders().values()) {
96+
if (appenderIterator.hasNext()) {
97+
var appender = appenderIterator.next();
10098
String fileName = extractFileName(appender);
10199
if (fileName != null) {
102100
fileNameList.add(Paths.get(fileName));
103101
}
104102
}
105-
106103
return fileNameList;
107104
}
108105

109106
/**
110107
* File appender types do not share a "write-to-file" superclass.
111108
*/
112-
private String extractFileName(Appender a) {
109+
private String extractFileName(Appender<ILoggingEvent> a) {
113110
if (a instanceof FileAppender) {
114-
return ((FileAppender) a).getFileName();
115-
116-
} else if (a instanceof RollingFileAppender) {
117-
return ((RollingFileAppender) a).getFileName();
118-
119-
} else if (a instanceof RollingRandomAccessFileAppender) {
120-
return ((RollingRandomAccessFileAppender) a).getFileName();
121-
122-
} else if (a instanceof RandomAccessFileAppender) {
123-
return ((RandomAccessFileAppender) a).getFileName();
124-
125-
} else if (a instanceof MemoryMappedFileAppender) {
126-
return ((MemoryMappedFileAppender) a).getFileName();
127-
111+
return ((FileAppender<ILoggingEvent>) a).getFile();
128112
} else {
129113
return null;
130114
}

src/main/resources/config/dev/log4j2.xml

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
<property name="LOG_DIR" value="${user.home}/logs" />
4+
<property name="LOG_PATTERN" value="[%-5level] %d %c \(%thread\) - %msg%n" />
5+
6+
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
7+
<encoder>
8+
<pattern>${LOG_PATTERN}</pattern>
9+
</encoder>
10+
</appender>
11+
12+
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
13+
<file>${LOG_DIR}/steve.log</file>
14+
15+
<!-- daily rollover -->
16+
<!-- keep 30 days' worth of history capped at 3GB total size -->
17+
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
18+
<fileNamePattern>${LOG_DIR}/steve-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
19+
<maxHistory>30</maxHistory>
20+
<totalSizeCap>3GB</totalSizeCap>
21+
</rollingPolicy>
22+
23+
<encoder>
24+
<pattern>${LOG_PATTERN}</pattern>
25+
</encoder>
26+
</appender>
27+
28+
<root level="DEBUG">
29+
<appender-ref ref="CONSOLE" />
30+
</root>
31+
32+
<!-- Disable the Jooq logo in logs -->
33+
<!-- https://github.com/jOOQ/jOOQ/issues/4019 -->
34+
<logger name="org.jooq.Constants" level="WARN" />
35+
36+
<logger name="org.apache.cxf" level="INFO"/>
37+
<logger name="org.eclipse.jetty" level="INFO"/>
38+
<logger name="com.zaxxer.hikari" level="INFO"/>
39+
<logger name="org.springframework" level="INFO"/>
40+
<logger name="org.springframework.security" level="INFO"/>
41+
<logger name="org.springframework.web.servlet" level="INFO"/>
42+
43+
<logger name="org.apache.jasper" level="WARN"/>
44+
<logger name="org.apache.tomcat.util" level="WARN"/>
45+
<logger name="jndi" level="WARN"/>
46+
47+
</configuration>

src/main/resources/config/docker/log4j2.xml

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
<property name="LOG_DIR" value="${user.home}/logs" />
4+
<property name="LOG_PATTERN" value="[%-5level] %d %c \(%thread\) - %msg%n" />
5+
6+
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
7+
<encoder>
8+
<pattern>${LOG_PATTERN}</pattern>
9+
</encoder>
10+
</appender>
11+
12+
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
13+
<file>${LOG_DIR}/steve.log</file>
14+
15+
<!-- daily rollover -->
16+
<!-- keep 30 days' worth of history capped at 3GB total size -->
17+
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
18+
<fileNamePattern>${LOG_DIR}/steve-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
19+
<maxHistory>30</maxHistory>
20+
<totalSizeCap>3GB</totalSizeCap>
21+
</rollingPolicy>
22+
23+
<encoder>
24+
<pattern>${LOG_PATTERN}</pattern>
25+
</encoder>
26+
</appender>
27+
28+
<root level="INFO">
29+
<appender-ref ref="CONSOLE" />
30+
</root>
31+
32+
<!-- Disable the Jooq logo in logs -->
33+
<!-- https://github.com/jOOQ/jOOQ/issues/4019 -->
34+
<logger name="org.jooq.Constants" level="WARN" />
35+
36+
<logger name="org.apache.jasper" level="WARN"/>
37+
<logger name="org.apache.tomcat.util" level="WARN"/>
38+
<logger name="jndi" level="WARN"/>
39+
40+
</configuration>

src/main/resources/config/kubernetes/log4j2.xml

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
<property name="LOG_DIR" value="${user.home}/logs" />
4+
<property name="LOG_PATTERN" value="[%-5level] %d %c \(%thread\) - %msg%n" />
5+
6+
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
7+
<encoder>
8+
<pattern>${LOG_PATTERN}</pattern>
9+
</encoder>
10+
</appender>
11+
12+
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
13+
<file>${LOG_DIR}/steve.log</file>
14+
15+
<!-- daily rollover -->
16+
<!-- keep 30 days' worth of history capped at 3GB total size -->
17+
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
18+
<fileNamePattern>${LOG_DIR}/steve-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
19+
<maxHistory>30</maxHistory>
20+
<totalSizeCap>3GB</totalSizeCap>
21+
</rollingPolicy>
22+
23+
<encoder>
24+
<pattern>${LOG_PATTERN}</pattern>
25+
</encoder>
26+
</appender>
27+
28+
<root level="INFO">
29+
<appender-ref ref="CONSOLE" />
30+
</root>
31+
32+
<!-- Disable the Jooq logo in logs -->
33+
<!-- https://github.com/jOOQ/jOOQ/issues/4019 -->
34+
<logger name="org.jooq.Constants" level="WARN" />
35+
36+
<logger name="org.apache.jasper" level="WARN"/>
37+
<logger name="org.apache.tomcat.util" level="WARN"/>
38+
<logger name="jndi" level="WARN"/>
39+
40+
</configuration>

0 commit comments

Comments
 (0)