diff --git a/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/logging/Logback.java b/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/logging/Logback.java index 23e340a951d..6c5c273bd18 100644 --- a/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/logging/Logback.java +++ b/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/logging/Logback.java @@ -20,7 +20,6 @@ import jakarta.inject.Singleton; import org.grails.forge.application.ApplicationType; -import org.grails.forge.application.OperatingSystem; import org.grails.forge.application.generator.GeneratorContext; import org.grails.forge.build.dependencies.Dependency; import org.grails.forge.feature.DefaultFeature; @@ -61,17 +60,10 @@ public boolean shouldApply(ApplicationType applicationType, Options options, Set @Override public void apply(GeneratorContext generatorContext) { - OperatingSystem operatingSystem = generatorContext.getOperatingSystem(); - boolean jansi = false; - - if (operatingSystem != OperatingSystem.WINDOWS) { - jansi = true; - } - String projectName = generatorContext.getProject().getName(); String packageName = generatorContext.getProject().getPackageName(); - generatorContext.addTemplate("loggingConfig", new RockerTemplate("grails-app/conf/logback-spring.xml", logback.template(projectName, packageName, jansi))); + generatorContext.addTemplate("loggingConfig", new RockerTemplate("grails-app/conf/logback-spring.xml", logback.template(projectName, packageName))); generatorContext.addDependency(Dependency.builder() .groupId("org.apache.grails") .artifactId("grails-logging") diff --git a/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/logging/template/logback.rocker.raw b/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/logging/template/logback.rocker.raw index 14243f809c8..62413c310cd 100644 --- a/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/logging/template/logback.rocker.raw +++ b/grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/logging/template/logback.rocker.raw @@ -17,14 +17,14 @@ specific language governing permissions and limitations under the License. *@ -@args (String projectName, String packageName, boolean jansi) +@args (String projectName, String packageName) - @jansi + false ${CONSOLE_LOG_THRESHOLD} diff --git a/grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/logging/LogbackSpec.groovy b/grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/logging/LogbackSpec.groovy index 3df3a2acc2e..4bb8d0a5bc1 100644 --- a/grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/logging/LogbackSpec.groovy +++ b/grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/logging/LogbackSpec.groovy @@ -52,4 +52,18 @@ class LogbackSpec extends ApplicationContextSpec implements CommandOutputFixture where: applicationType << ApplicationType.values().toList() } + + @Unroll + void "test logback-spring.xml disables Jansi for #applicationType application"() { + when: + def output = generate(applicationType, new Options(DevelopmentReloading.DEVTOOLS)) + + then: "Jansi is disabled so its global System.out replacement does not break console logging after a Spring Boot DevTools restart (issue #15663)" + def logback = output.get("grails-app/conf/logback-spring.xml") + logback.contains("false") + !logback.contains("true") + + where: + applicationType << ApplicationType.values().toList() + } }