log4j升级log4j2

  1. web.xml 加入    
        <listener>
               <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
        </listener>
        <context-param>
            <param-name>log4jConfiguration</param-name>
            <!--默认是classpath下的log4j2.xml-->
            <param-value>classpath:log4j2.xml</param-value>
        </context-param>
  2. src/main/resources 新建log4j2.xml(log4j2名字不能改变)
    <?xml version="1.0" encoding="UTF-8"?>    
    
    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
    <!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
    
    <configuration status="DEBUG">
    	    <!-- 变量配置 应该是日志文件保存路径-->
    	    <Properties>
    	        <!-- (*必须,各应用需要修改) 部署应用的名称,命名规则 :全部小写字母、中短横线、数字,与微服务命名,disconf中命名一致 -->
    	        <property name="APPNAME">log-service</property>
    	        <!-- (各应用需要修改)日志文件本地存放目录路径 建议各个环境跟生产环境统一起来,方便维护 -->
    	        <!--sys:catalina.home  tomcat的根目录-->
    	        <Property name="logBaseFolder">${sys:catalina.home}/logs/log/</Property>
    	        <!-- *必须并强制遵守 日志文件的编码 -->
    	        <property name="log_charset">UTF-8</property>
    	        <!--输出日志格式-->
    	        <property name="log_pattern">
    	            %d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n
    	        </property>
    	    </Properties>
    
    
    <!--     先定义所有的appender
        <appenders>  -->  
    <!--         这个输出控制台的配置 
            <Console name="Console" target="SYSTEM_OUT">  -->  
    <!--             控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)
                <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>   -->  
    <!--             这个都知道是输出日志的格式
                <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>  
            </Console>   -->  
    
    <!--         文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用 -->  
    <!--         append为TRUE表示消息增加到指定文件中,false表示消息覆盖指定的文件内容,默认值是true
            <File name="log" fileName="log/test.log" append="false">  
                <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>  
            </File>   -->  
    
    <!--          添加过滤器ThresholdFilter,可以有选择的输出某个级别以上的类别  onMatch="ACCEPT" onMismatch="DENY"意思是匹配就接受,否则直接拒绝 
            <File name="ERROR" fileName="logs/error.log">  
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>  
                <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>  
            </File>   -->  
    
    <!--         这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 
            <RollingFile name="RollingFile" fileName="logs/web.log"  
                         filePattern="logs/$${date:yyyy-MM}/web-%d{MM-dd-yyyy}-%i.log.gz">  
                <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>  
                <SizeBasedTriggeringPolicy size="2MB"/>  
            </RollingFile>  
        </appenders>  -->  
        
        <!--先定义所有的appender-->
        <appenders>
            <!--这个输出控制台的配置-->
            <console name="Console" target="SYSTEM_OUT">
                <!--输出日志的格式 %c :全路径,%c{1} 去掉包名-->
                <PatternLayout pattern="[%d{HH:mm:ss}] %-5p %c{1}:%L - %msg%n"/>
                <!--<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%t] %-5p %c:%L - %msg%n"/> -->
            </console>
            
            <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,默认为true不清空,false清空 适合临时测试用-->
            <File name="log" fileName="${logBaseFolder}/${APPNAME}-web.log" append="true">
                <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
                 <!-- 以下是日志压缩包目录的建议格式名称 建议1天归档1次,压缩文件上线建议为200,这里预估每个磁盘存储空间200G左右,每个压缩包最大值200MB -->
                <Policies>
                    <TimeBasedTriggeringPolicy  modulate="true" interval="1"/>
                    <SizeBasedTriggeringPolicy size="20 MB"/>
                </Policies>
            </File>
            
            <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
            <RollingFile name="RollingFileInfo" fileName="${logBaseFolder}/${APPNAME}-info.log"
                         filePattern="${logBaseFolder}/%d{yyyy-MM}/${APPNAME}-info-%d{yyyy_MM_dd}.log.gz">
                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
                <!-- 日志输出格式 -->
                <PatternLayout charset="${log_charset}" pattern="${log_pattern}" />
                <!-- 以下是日志压缩包目录的建议格式名称 建议1天归档1次,压缩文件上线建议为200,这里预估每个磁盘存储空间200G左右,每个压缩包最大值200MB -->
                <Policies>
                    <TimeBasedTriggeringPolicy  modulate="true" interval="1"/>
                    <SizeBasedTriggeringPolicy size="20 MB"/>
                </Policies>
            </RollingFile>
    
            <RollingFile name="RollingFileError" fileName="${logBaseFolder}/${APPNAME}-error.log"
                         filePattern="${logBaseFolder}/%d{yyyy-MM}/${APPNAME}-error-%d{yyyy_MM_dd}.log.gz">
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
                <PatternLayout charset="${log_charset}" pattern="${log_pattern}" />
                <Policies>
                    <TimeBasedTriggeringPolicy  modulate="true" interval="1"/>
                    <SizeBasedTriggeringPolicy size="20 MB"/>
                </Policies>
            </RollingFile>
        </appenders>
    
    	<!--然后定义 logger,只有定义了logger并引入的appender,appender才会生效-->  
        <loggers>  
            <!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
            <logger name="org.springframework" level="INFO"/>
            <logger name="org.mybatis" level="INFO"/>
    
            <root level="DEBUG">
                <appender-ref ref="Console"/>
                <appender-ref ref="RollingFileInfo"/>
                <appender-ref ref="RollingFileError"/>
                <appender-ref ref="log"/>
            </root>
    
        </loggers>  
    </configuration>  

    3.pom.xml 下载log4j2

            <properties>
    
    		    <!-- log4j日志文件管理包版本 -->
    		    <slf4j.version>1.7.7</slf4j.version>
    		    <log4j.version>2.15.0</log4j.version>
    
    	    </properties>
    
            <!-- 日志文件管理包 -->
    		<!-- log start -->
    		<dependency>
    		    <groupId>org.apache.logging.log4j</groupId>
    		    <artifactId>log4j-core</artifactId>
    		    <version>${log4j.version}</version>
    		</dependency>
    		<dependency>
    		    <groupId>org.apache.logging.log4j</groupId>
    		    <artifactId>log4j-api</artifactId>
    		    <version>${log4j.version}</version>
    		</dependency>
    		<dependency>
    		    <groupId>org.apache.logging.log4j</groupId>
    		    <artifactId>log4j-slf4j-impl</artifactId>
    		    <version>${log4j.version}</version>
    		</dependency>
    		<dependency>
    		    <groupId>org.apache.logging.log4j</groupId>
    		    <artifactId>log4j-web</artifactId>
    		    <version>${log4j.version}</version>
    		</dependency>
    		<dependency>
    		    <groupId>org.apache.logging.log4j</groupId>
    		    <artifactId>log4j-jcl</artifactId>
    		    <version>${log4j.version}</version>
    		</dependency>
    		<!-- 格式化对象,方便输出日志 -->
    		<dependency>
    			<groupId>com.alibaba</groupId>
    			<artifactId>fastjson</artifactId>
    			<version>1.1.41</version>
    		</dependency>
    		<!-- log end -->

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值