日志系统log4j

本文介绍了日志系统Log4j的依赖、配置文件的详细设置以及如何进行测试。通过对Log4j.xml的配置讲解,展示了如何定制日志输出级别和格式,帮助开发者更好地理解和应用Log4j。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

依赖

 		<!-- slf4j 规范定义和桥架 -->

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>jcl-over-slf4j</artifactId>

            <version>1.7.25</version>

        </dependency>

            
        <!-- log4j2 实现 -->

        <dependency>

            <groupId>org.apache.logging.log4j</groupId>

            <artifactId>log4j-slf4j-impl</artifactId>

            <version>2.11.1</version>

            <scope>test</scope>

        </dependency>


log4j.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!--设置log4j2的自身log级别为warn-->
<configuration status="warn">

   <!-- 自定义变量 -->
   <Properties>
		<Property name="filedir">logs</Property>
	</Properties>


    <appenders>
        <console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </console>

        <RollingFile name="RollingFileInfo" fileName="${filedir}/info.log"
                     filePattern="${filedir}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">
              <!-- 过滤规则-->
            <Filters>
                <ThresholdFilter level="INFO"/>
                <!-- 更高级别的忽略 -->
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
              <!-- 日志策略-->
            <Policies>
             <!-- 每天生成一个日志文件 --> 
             <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            <!-- 限制单个文件大小 -->  
             <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
             <!-- 最大保存文件数 -->  
            <DefaultRolloverStrategy max="60" /> 
        </RollingFile>

        <RollingFile name="RollingFileWarn" fileName="${filedir}/warn.log"
                     filePattern="${filedir}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <ThresholdFilter level="WARN"/>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>

        <RollingFile name="RollingFileError" fileName="${filedir}/error.log"
                     filePattern="${filedir}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">
            <ThresholdFilter level="ERROR"/>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>

    </appenders>

    <loggers>
        <root level="info">
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
        </root>
    </loggers>

</configuration>

log4j测试

public class Log4JTest {
	
	private static final Logger logger = LoggerFactory.getLogger(Log4JTest.class);
	
	public static void main(String[] args) {
		while(true) {
			try {
				Thread.sleep(3000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		logger.debug("debug");
		logger.info("info");
		logger.warn("warn");
		logger.error("error");
		}
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值