当前位置: 首页 > article >正文

SpringMVC log4j1升级log4j2

整个升级过程耗时5个小时,中间耗时最长的是找合适的包和升级后日志无法打印以及无法控制日志输出位置,完成后感觉其实很简单,如果一开始就能看到我现在写的笔记,可能几分钟就搞定了。

第一步:首先上log4j2所需要的包
使用版本2.16.0:(以下两个必须同步升级到2.16.0,否则运行会报错)

log4j-core:https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/2.16.0

log4j-api:https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api/2.16.0

其它相关组件,建议也升级:

log4j-slf4j-impl:https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl/2.16.0

log4j-jul:https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-jul/2.16.0

到这里只要下载完成放到项目中基本上已经完成一半了;

第二步:删除项目中原来的log4j和slf4j-api

第三步:配置简单的log4j2.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<configuration status="warn" monitorInterval="5">

    <!--定义Log4j2的组件-->
    <Appenders>
        <!--        定义控制台输出的组件-->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] [%-5level] %c{36}:%L --- %m%n"/>
        </Console>

        <!--        定义文件输出的组件-->
        <File name="file" fileName="D:/LOGS/myfile.log">
            <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %c{36} - %m%n"/>
        </File>

        <!--        定义一个文件输出日志组件-->
        <RandomAccessFile name="accessFile" fileName="D:/LOGS/myAcclog.log">
            <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %c{36} - %m%n"/>
        </RandomAccessFile>

        <!--        定义一个可滚动的文件输出日志组件-->
        <RollingFile name="rollingFile" fileName="D:/LOGS/myrollog.log"
                     filePattern="D:/LOGS/$${date:yyyy-MM-dd}/myrollog-%d{yyyy-MM-dd-HH-mm}-%i.log">
            <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %c{36} - %msg%n"/>
            <Policies>
                <OnStartupTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <DefaultRolloverStrategy max="30"/>
        </RollingFile>

    </Appenders>

    <Loggers>
        <!--        设置日志级别是TRACE,等于以及高于此级别的日志才会输出-->
        <Root level="trace">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="file"/>
            <AppenderRef ref="accessFile"/>
            <AppenderRef ref="rollingFile"/>
        </Root>
    </Loggers>
</configuration>

第五步:在web.xml中添加配置

  <context-param>
        <param-name>log4jConfiguration</param-name>
        <param-value>classpath:log4j2.xml</param-value>
  </context-param>

到这里大功告成,等项目编译完成重启即可。


http://www.kler.cn/a/135084.html

相关文章:

  • 【Hadoop实训】Hive 数据操作①
  • 【MySQL从入门到放弃】InnoDB磁盘结构(一)
  • Nginx配置自带的stub状态实现活动监控指标
  • 【知识科普】SPA单页应用程序介绍
  • C++组合复用中,委托的含义与作用
  • 怎么监控员工电脑?分享5个监控员工电脑的绝佳方法(立竿见影!建议收藏!)
  • 数据采集与大数据架构分享
  • uniapp App 端 版本更新检测
  • 刷题方法论
  • 中国智能音箱市场销量下降,百度稳居第一 /中国即评出10个大模型创新案例 |魔法半周报
  • Dockerfile基础
  • 前台查看日志功能
  • RK3568 + YT 9215交换机芯片,MAC TO MAC 调试记录
  • 有趣的按钮分享
  • 【备忘录】Docker容器、镜像删除与资源清理命令
  • PC3329L DC-DC降压 10V-100V输入3A大流输出带EN功能实现零功耗只需极少元器件
  • 如何解决 Critical dependency: the request of a dependency is an expression ?
  • 全国行业就业数据,了解第一二三产业的就业人数~
  • 打不开github网页解决方法
  • MFC 对话框
  • Scala--- Actor通信模型
  • sqli-labs关卡18(基于http头部报错盲注)通关思路
  • 同一台Linux同时安装MYSQL5.7和MYSQL8(第二篇)
  • 2024年全网最全的Jmeter教程:jmeter_BeanShell脚本通过BeanShell进行加解密方法
  • C语言——冒泡排序
  • Flume学习笔记(3)—— Flume 自定义组件