spring整合log4j_log4j和logback同时使用

spring整合log4j_log4j和logback同时使用常用日志框架log4j、log4j2(log4j的升级版,最常用的)、logback(spring boot默认)、Jboss-logging…等slf4 是日志接口规范,代码对接slf4,实现和具体日志框架解耦,无需修改编码即可切换日志框架。修改pom依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

常用日志框架

  • log4j、log4j2(log4j的升级版,最常用的)、logback(spring boot默认)、Jboss-logging…等

  • slf4 是日志接口规范,代码对接slf4,实现和具体日志框架解耦,无需修改编码即可切换日志框架。

  • 修改pom依赖

    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter</artifactId>
         <!--移除框架中的logback依赖-->
         <exclusions>
             <exclusion>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-starter-logging</artifactId>
             </exclusion>
         </exclusions>
     </dependency>
     
     
     <!-- 支持log4j2的模块-->
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-log4j2</artifactId>
     </dependency>
    
    • 添加xml配置文件:log4j2.xml
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j2能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<configuration status="WARN" monitorInterval="30">
    <Properties>
        <!-- 配置日志文件输出目录 -->
        <Property name="LOG_HOME" value="C:\Users\Administrator\Desktop\讲课\0326\logs" />
    </Properties>
     <!--先定义所有的appender-->
     <appenders>
     <!--这个输出控制台的配置-->
         <Console name="Console" target="SYSTEM_OUT">
         <!--输出日志的格式-->
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
         </Console>
        <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用-->
         <File name="log" fileName="${LOG_HOME}//test.log" append="false">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
         </File>
        <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
         <RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/info.log"
                      filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
             <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
             <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                 <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
             </Policies>
         </RollingFile>
         <RollingFile name="RollingFileWarn" fileName="${LOG_HOME}/warn.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
             <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
             <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
             <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
             </Policies>
                <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
             <DefaultRolloverStrategy max="20"/>
         </RollingFile>
         <RollingFile name="RollingFileError" fileName="${LOG_HOME}/error.log"
                      filePattern="${LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
             <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
             <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
             <Policies>
                 <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
             </Policies>
        </RollingFile>
     </appenders>
     <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效
        !! DEBUG => 研发
     	!!INFO => 研发
     	!!ERROR  => 生产环境
     ...
     
     每10M  生成一个文件
     每天或者间隔多长时间生成一个文件
     -->
     <loggers>
        <root level="INFO">
            <appender-ref ref="Console"/>
            <!--暂时注释文件日志输出-->
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
        </root>
    </loggers>
</configuration>
  • 添加xml配置文件:log4j2.xml

  • 测试

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
       protected Logger logger = LoggerFactory.getLogger(getClass());
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168764.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 波束形成

    波束形成1.问题描述:数字波束形成器是全数字化超声成像的基础,也是高性能彩超的保证。数字波束形成包括发射和接收两个部分。数字是接收波束形成的关键技术,它通过使用顺序储存器FIFO或随机存取存储器双端口RAM替代模拟式波束形成器中的LC延时线来实现波束聚焦,即以数字延时补偿替代模拟延时的补偿。数字延时不仅能实现精确延时补偿,实现所谓的逐点跟踪式动态聚焦,还能方便实现动态孔径、动态变迹控制,克服模拟式延时补偿存在的诸多固有缺点,通道数增加不受限制,是图像品质得以全面提高。2.部分程序:close..

    2022年6月15日
    39
  • idea永久激活码2021年_通用破解码

    idea永久激活码2021年_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    263
  • 求总体标准差的置信区间_如何计算置信区间[通俗易懂]

    求总体标准差的置信区间_如何计算置信区间[通俗易懂]一、置信区间与置信水平在做实验时,即使实验条件再准确,也无法避免随机干扰的影响,所以误差永远存在,无可避免。做科学实验时要测量多次,采取取平均值的方法。在科学实验的测量结果上,总是会加上一个测量范围。统计学核心思想:用样本信息来估计总体信息之前我们用样本给出一个精确值来估计总体,这个点估计值是有价值的,但可能存在误差,因为有估计就会有误差,误差不可避免但是可以减少。点(精确值)误差>区间…

    2025年7月15日
    3
  • sqlyog证书密钥(注册码)_SQLyog安装教程

    sqlyog证书密钥(注册码)_SQLyog安装教程SQLyogv12.09(64bit)注册码姓名(Name):cr173序列号(Code):8d8120df-a5c3-4989-8f47-5afc79c56e7c或者(OR)姓名(Name):ttrar序列号(Code):8d8120df-a5c3-4989-8f47-5afc79c56e7c…

    2022年4月20日
    4.6K
  • win10多合一原版系统_win10多合一原版系统[通俗易懂]

    win10多合一原版系统_win10多合一原版系统[通俗易懂]win10多合一原版系统装机系统拥有着大多数同类型定位的装机系统所没有的强大稳定性可以确保系统在运行的过程中绝对不会因为一些小毛病而出现崩溃的现象,对win10多合一原版系统装机系统感兴趣的朋友们快下载吧。win10多合一原版系统介绍:1、在不影响大多数软件和硬件操作的情况下,尽可能关闭不必要的服务。2、电脑兼容通用驱动助手,可以智能判断硬件类型并安装最兼容的驱动。3、综合2000-2020年流行…

    2022年6月16日
    85
  • linux下socket编程实例_C语言窗口编程

    linux下socket编程实例_C语言窗口编程1.什么是TCP/IP、UDP?TCP/IP(TransmissionControlProtocol/InternetProtocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。  UDP(UserDataProtocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。下面的图表明了这些协议的关系。

    2022年10月7日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号