Design Partners
Migrate Log4j 2.x Layout to logback-classic equivalents
** org.openrewrite.java.logging.logback.Log4jLayoutToLogback** Migrates custom Log4j 2.x Layout components to logback-classic. This recipe operates on the following assumptions: 1.) A logback-classic layout must extend the LayoutBase<ILoggingEvent> class. 2.) log4j's format() is renamed to doLayout() in a logback-classic layout. 3.) LoggingEvent getRenderedMessage() is converted to LoggingEvent getMessage(). 4.) The log4j ignoresThrowable() method is not needed and has no equivalent in logback-classic. 5.) The activateOptions() method merits further discussion. In log4j, a layout will have its activateOptions() method invoked by log4j configurators, that is PropertyConfigurator or DOMConfigurator just after all the options of the layout have been set. Thus, the layout will have an opportunity to check that its options are coherent and if so, proceed to fully initialize itself. 6.) In logback-classic, layouts must implement the LifeCycle interface which includes a method called start(). The start() method is the equivalent of log4j's activateOptions() method. For more details, see this page from logback: Migration from log4j.

Source

  • groupId: org.openrewrite.recipe
  • artifactId: rewrite-logging-frameworks
  • version: 1.8.0

Usage

This recipe has no required configuration options and can be activated directly after taking a dependency on org.openrewrite.recipe:rewrite-logging-frameworks:1.8.0 in your build file:
Gradle
Maven
build.gradle
1
plugins {
2
id("org.openrewrite.rewrite") version("5.22.2")
3
}
4
5
rewrite {
6
activeRecipe("org.openrewrite.java.logging.logback.Log4jLayoutToLogback")
7
}
8
9
repositories {
10
mavenCentral()
11
}
12
13
dependencies {
14
rewrite("org.openrewrite.recipe:rewrite-logging-frameworks:1.8.0")
15
}
Copied!
pom.xml
1
<project>
2
<build>
3
<plugins>
4
<plugin>
5
<groupId>org.openrewrite.maven</groupId>
6
<artifactId>rewrite-maven-plugin</artifactId>
7
<version>4.25.0</version>
8
<configuration>
9
<activeRecipes>
10
<recipe>org.openrewrite.java.logging.logback.Log4jLayoutToLogback</recipe>
11
</activeRecipes>
12
</configuration>
13
<dependencies>
14
<dependency>
15
<groupId>org.openrewrite.recipe</groupId>
16
<artifactId>rewrite-logging-frameworks</artifactId>
17
<version>1.8.0</version>
18
</dependency>
19
</dependencies>
20
</plugin>
21
</plugins>
22
</build>
23
</project>
Copied!
Recipes can also be activated directly from the command line by adding the argument -Drewrite.activeRecipesorg.openrewrite.java.logging.logback.Log4jLayoutToLogback
Export as PDF
Copy link
Contents
Source
Usage