使用log4j2进行系统日志记录

pom包:

<properties>
        <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
		<junit.version>4.12</junit.version>
		<servlet.version>3.1.0</servlet.version>		
		<slf4j.version>1.6.4</slf4j.version>
		<log4j2.version>2.8.2</log4j2.version>
		<jdk.version>1.8</jdk.version>
	</properties>


	<dependencies>
        <dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>${log4j2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-jcl</artifactId>
			<version>${log4j2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
			<version>${log4j2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j.version}</version>
		</dependency>

</dependencies>

log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="TRACE">
   
    <Properties>
        <!--定义变量-->
        <Property name="filename" >${sys:catalina.home}/logs/chronos_r/chronos_r.log</Property>
        <Property name="filenameError">${sys:catalina.home}/logs/chronos_r/chronos_r_error.log</Property>
    </Properties>

    <Appenders>
        <!--控制台输出-->
        <Console name="STDOUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %l - %msg%n"/>
        </Console>
        <!--入文件-->
        <RollingFile name="RollingFile" fileName="${filename}"
                     filePattern="${catalina.home}/logs/chronos_r/${date:yyyy-MM}/chronos_r-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout pattern="%d %-5level [%t]%l - %msg%n"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="200 MB"/>
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!--自动删除超过120天的日志压缩文件-->
            <DefaultRolloverStrategy>
                <Delete basePath="${baseDir}" maxDepth="2">
                    <IfFileName glob="*/chronos_r-*.log.gz"/>
                    <IfLastModified age="120d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
        <!--错误日志入文件-->
        <RollingFile name="RollingFileError" fileName="${filenameError}"
                     filePattern="${catalina.home}/logs/chronos_r/${date:yyyy-MM}/chronos_r_error-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout pattern="%d %-5level [%t]%l - %msg%n"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="200 MB"/>
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!--自动删除超过120天的日志压缩文件-->
            <DefaultRolloverStrategy>
                <Delete basePath="${baseDir}" maxDepth="2">
                    <IfFileName glob="*/chronos_r_error-*.log.gz"/>
                    <IfLastModified age="120d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

    </Appenders>
    <Loggers>
    
         <!-- myibatis log configure -->
        <logger name="com.apache.ibatis" level="INFO"/>
        <logger name="org.mybatis.spring" level="DEBUG"/>
        <logger name="java.sql.Connection" level="DEBUG"/>
        <logger name="java.sql.Statement" level="DEBUG"/>
        <logger name="java.sql.PreparedStatement" level="DEBUG"/>
        
        <!-- 减少部分debug日志 -->
        <logger name="druid.sql" level="INFO"/>
        <logger name="org.apache.shiro" level="INFO"/>
        <logger name="org.mybatis.spring" level="INFO"/>
        <logger name="org.springframework" level="INFO"/>
        <logger name="org.springframework.context" level="WARN"/>
        <logger name="org.springframework.beans" level="WARN"/>
        <logger name="com.baomidou.mybatisplus" level="INFO"/>
        <logger name="org.apache.ibatis.io" level="INFO"/>
        <logger name="org.apache.velocity" level="INFO"/>
        <logger name="org.hibernate.validator" level="INFO"/>
        <!-- cache INFO -->
        <logger name="net.sf.ehcache" level="INFO"/>
        <logger name="org.springframework.cache" level="INFO"/>
        <logger name="com.rz.commons.shiro.cache" level="INFO"/>
        
        <!-- 业务debug日志 -->
        <logger name="com.rz" level="DEBUG"/> 
        
        <!--采用异步输出日志-->
        <AsyncLogger name="com.rz" level="INFO">
            <!--写入info级别-->
            <AppenderRef ref="RollingFile"/>
            <!--写入error级别-->
            <AppenderRef ref="RollingFileError" level="ERROR"/>
        </AsyncLogger>
        
        <Root level="TRACE">
            <AppenderRef ref="STDOUT"  />
            <AppenderRef ref="RollingFile" />
            <AppenderRef ref="RollingFileError" level="ERROR"/>
        </Root>
    </Loggers>
</Configuration>

 注意点:  获取tomcat根目录语法为: ${sys:catalina.home} 非 ${catalina.home}。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值