Skip to content

Commit 854a56c

Browse files
authored
Merge pull request #47248 from gsmet/disable-log-rotation
Allow to disable log rotation
2 parents 70abda3 + 94aeee4 commit 854a56c

File tree

4 files changed

+54
-1
lines changed

4 files changed

+54
-1
lines changed

core/runtime/src/main/java/io/quarkus/runtime/logging/LogRuntimeConfig.java

+7
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,13 @@ interface FileConfig {
223223
RotationConfig rotation();
224224

225225
interface RotationConfig {
226+
227+
/**
228+
* Whether log rotation is enabled.
229+
*/
230+
@WithDefault("true")
231+
boolean enabled();
232+
226233
/**
227234
* The maximum log file size, after which a rotation is executed, up to {@code Long.MAX_VALUE} bytes.
228235
* Note that the file is rotated <em>after</em> the log record is written.

core/runtime/src/main/java/io/quarkus/runtime/logging/LoggingSetupRecorder.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,9 @@ private static Handler configureFileHandler(final FileConfig config, final Error
654654
final boolean includeFilters) {
655655
FileHandler handler;
656656
FileConfig.RotationConfig rotationConfig = config.rotation();
657-
if (rotationConfig.fileSuffix().isPresent()) {
657+
if (!rotationConfig.enabled()) {
658+
handler = new FileHandler();
659+
} else if (rotationConfig.fileSuffix().isPresent()) {
658660
PeriodicSizeRotatingFileHandler periodicSizeRotatingFileHandler = new PeriodicSizeRotatingFileHandler();
659661
periodicSizeRotatingFileHandler.setSuffix(rotationConfig.fileSuffix().get());
660662
periodicSizeRotatingFileHandler.setRotateSize(rotationConfig.maxFileSize().asLongValue());
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
quarkus.log.level=INFO
2+
quarkus.log.file.enable=true
3+
quarkus.log.file.level=INFO
4+
quarkus.log.file.format=%d{HH:mm:ss} %-5p [%c{2.}]] (%t) %s%e%n
5+
quarkus.log.file.rotation.enabled=false
6+
quarkus.root.dsa-key-location=/DSAPublicKey.encoded
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package io.quarkus.logging;
2+
3+
import static io.quarkus.logging.LoggingTestsHelper.getHandler;
4+
import static org.assertj.core.api.Assertions.assertThat;
5+
6+
import java.util.logging.Formatter;
7+
import java.util.logging.Handler;
8+
import java.util.logging.Level;
9+
10+
import org.jboss.logmanager.formatters.PatternFormatter;
11+
import org.jboss.logmanager.handlers.FileHandler;
12+
import org.junit.jupiter.api.Test;
13+
import org.junit.jupiter.api.extension.RegisterExtension;
14+
15+
import io.quarkus.test.QuarkusUnitTest;
16+
17+
public class NoRotationLoggingTest {
18+
19+
@RegisterExtension
20+
static final QuarkusUnitTest config = new QuarkusUnitTest()
21+
.withConfigurationResource("application-no-log-rotation.properties")
22+
.withApplicationRoot((jar) -> jar
23+
.addClass(LoggingTestsHelper.class)
24+
.addAsManifestResource("application.properties", "microprofile-config.properties"))
25+
.setLogFileName("NoRotationLoggingTest.log");
26+
27+
@Test
28+
public void sizeRotatingConfigurationTest() {
29+
Handler handler = getHandler(FileHandler.class);
30+
assertThat(handler.getLevel()).isEqualTo(Level.INFO);
31+
assertThat(handler).isExactlyInstanceOf(FileHandler.class);
32+
33+
Formatter formatter = handler.getFormatter();
34+
assertThat(formatter).isInstanceOf(PatternFormatter.class);
35+
PatternFormatter patternFormatter = (PatternFormatter) formatter;
36+
assertThat(patternFormatter.getPattern()).isEqualTo("%d{HH:mm:ss} %-5p [%c{2.}]] (%t) %s%e%n");
37+
}
38+
}

0 commit comments

Comments
 (0)