JAVA工具包,能自动将源代码中的日志系统commons-logging,log4j,java.util.logging迁移到slf4j上。
实例,将日志系统由commons-logging迁移到slf4j。
1)commons-logging使用及配置
-pom.xml
<dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
-log4j.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" /> </layout> </appender> <root> <priority value="debug"/> <appender-ref ref="console"/> </root> </log4j:configuration>
-MigratorTest.java
package com.siyuan.test.slf4j.migrator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class MigratorTest { public static void main(String[] args) { Log logger = LogFactory.getLog(MigratorTest.class); logger.debug("migrator test for slf4j"); } }
-运行结果
[2015-06-02 07:25:23,977 DEBUG] [main] migrator.MigratorTest - migrator test for slf4j
2)转化为slf4j
-下载运行slf4j-migrator
-更换pom.xml中的日志系统依赖
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.3</version> </dependency>
-将log4j.xml更换为logback-test.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern> </encoder> </appender> <root level="debug"> <appender-ref ref="STDOUT" /> </root> </configuration>
-运行结果
2015-06-02 07:29:54,819 DEBUG [main] c.s.t.s.m.MigratorTest [MigratorTest.java:10] migrator test for slf4j
限制
1)打包脚本需要手动修改
2)只支持String类型的日志信息,其它对象需要手动调用toString方法
3)不支持FATAL级别
4)假如调用某个方法时使用了多个logger参数,将无法保证完全转换
限制-Log4j
Log4j特有的API将需要手动转换,e.g. NDC、PropertyConfigurator、DomConfigurator
限制-JUL
略
参考资料
相关推荐
4. **配置文件处理**:除了源代码,Migrator还可能处理与特定日志框架相关的配置文件,例如Log4j的log4j.properties或log4j.xml,将其转换为适合SLF4J的配置格式。 **SLF4J的主要优点:** 1. **灵活性**:SLF4J允许...
SLF4J-Migrator工具是SLF4J项目的一部分,它设计用来帮助开发者将他们的应用从使用其他日志系统(如log4j、java.util.logging等)迁移到SLF4J。这个`slf4j-migrator-1.6.0.jar`文件是该工具的1.6.0版本,它可能包含...
该压缩包中包含以下内容: ...21、slf4j-migrator-1.7.21.jar 22、slf4j-nop-1.7.21.jar 23、slf4j-nop-1.7.21-sources.jar 24、slf4j-simple-1.7.21.jar 25、slf4j-simple-1.7.21-sources.jar
该压缩包中包含以下内容...log4j12-1.7.21-sources.jar 21、slf4j-migrator-1.7.21.jar 22、slf4j-nop-1.7.21.jar 23、slf4j-nop-1.7.21-sources.jar 24、slf4j-simple-1.7.21.jar 25、slf4j-simple-1.7.21-sources.jar
该压缩包中包含以下内容: 1、jcl-over-slf4j-1.7.21.jar 2、jcl-over-slf4j-1.7.21-sources.jar 3、jul-to-slf4j-1.7.21.jar 4、jul-to-slf4j-1.7.21-sources.jar 5、log4j-over-slf4j-1.7.21.jar 6、log4j-over-...
6. `slf4j-migrator-1.5.8.jar`:工具,帮助从其他日志框架迁移到SLF4J。 7. 文档和示例:包括API文档(Javadoc)和使用示例,帮助开发者理解和使用SLF4J。 在使用SLF4J时,需要避免"SLF4J Binding Ambiguity"问题...
log4j源码SLF4J迁移器 这是一个Python脚本,可让您将Java源代码中的Jakarta Commons Logging&Log4j迁移到SLF4J Logging。 运行此迁移器后会发生什么变化? 1.“ import”子句将被SLF4J替换 - import org.apache.log...
- 如果项目中有代码直接引用了log4j的API,可以通过SLF4J提供的`slf4j-migrator.jar`工具进行源码迁移。 2. 配置文件实时重载 为了实现配置文件的动态重载,可以在logback.xml中配置`<configuration>`标签的`scan...
6. **日志记录**:为了跟踪迁移过程并排查问题,项目可能整合了如Log4j或SLF4J的日志框架,记录迁移过程中的详细信息。 7. **错误处理和回滚机制**:如果在迁移过程中出现错误,工具需要能够识别这些问题,并在必要...