将log4J加slf4J的1.x版本在pom文件中替换成了id为logging.lo4J下的2.17版本,如下:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.0</version>
</dependency>
要把这两个替换成私库有的2.x以上的版本可行吗?
例如:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.17.1</version>
</dependency>
这样不懂是否可行?如果替换成这样,代码中除了一些要替换导入的包路径外,有一个类,模仿了(DailyRollingFileAppender)并且也是继承了1.X版本中log4j.FileAppender这个类,除了原本这个类的功能外做了一些功能拓展,想请问在2.x版本中是否有类似的类可以继承?或者说功能与之相同??
用 RollingFile
https://www.cnblogs.com/yeyang/p/7944899.html
你的POM依赖升级没有问题,是过度版本的兼容包。
虽然从log4j-1.2升级到log4j-1.2-api,从继承关系看,FileAppender都来自 ch.qos.logback.core.FileAppender类。
是为了解决log4j的漏洞吗
你提了两个问题,
第一是你的方案可行或不可行!
答:方案可行。
第二是你拓展的fileappender,有没有后续的升级版本或者升级后的版本影响不影响!
答:不一定,具体要看你拓展了哪些功能。因为不同的实现有不同的影响!
建议升级后,做下覆盖测试!
https://www.cnblogs.com/flystar32/p/6751895.html
看看这个对你有帮助麽
占座make,学习下
我感觉只需要log4j-core和log4j-api就可以了
升级到最新版本,高版本兼容低版本