将log4J加slf4J的1.x版本换成log4j 2.x的版本中有与1.x版本中DailyRollingFileAppender相似的类吗?

将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

  1. 使用的接口包统一更改为slf4j
  2. 使用log4j可以适配slf4j

你的POM依赖升级没有问题,是过度版本的兼容包。

虽然从log4j-1.2升级到log4j-1.2-api,从继承关系看,FileAppender都来自 ch.qos.logback.core.FileAppender类。

img


具体看下客制化逻辑

是为了解决log4j的漏洞吗

你提了两个问题,
第一是你的方案可行或不可行!
答:方案可行。

第二是你拓展的fileappender,有没有后续的升级版本或者升级后的版本影响不影响!
答:不一定,具体要看你拓展了哪些功能。因为不同的实现有不同的影响!

建议升级后,做下覆盖测试!

https://blog.csdn.net/penriver/article/details/115658984?spm=1005.2026.3001.5635&utm_medium=distribute.pc_relevant_ask_down.none-task-blog-2~default~OPENSEARCH~default-11.pc_feed_download_top3ask&depth_1-utm_source=distribute.pc_relevant_ask_down.none-task-blog-2~default~OPENSEARCH~default-11.pc_feed_download_top3ask

https://www.cnblogs.com/flystar32/p/6751895.html
看看这个对你有帮助麽

占座make,学习下

我感觉只需要log4j-core和log4j-api就可以了

升级到最新版本,高版本兼容低版本