日志打印的学习之log4j2(二)进阶案例

日志级别简述:

trace追踪,就是程序推进一下,可以写个trace输出
debug调试,一般作为最低级别,trace基本不用。
info输出重要的信息,使用较多
warn警告,有些信息不是错误信息,但也要给程序员一些提示。
error错误信息。用的也很多。
fatal致命错误

日志输出形式

console输出到控制台
file输出到文件

日志配置的三大元素

configuration根节点
appender附加器,用与声明日志的打印方式,一般是Console,File,RollingFile
loggers引用附加器,声明调用附加器的点,root节点是必须配置的,代表全局的日志打印配置,logger代表局部自定义的日志打印配置

日志配置的具体属性配置:

<?xml version="1.0" encoding="UTF-8"?>
<!--根节点Configuration两个属性:status:用来指定log4j本身的打印日志的级别 monitorinterval:用于指定log4j自动重新配置的监测间隔时间,单位是s,最小是5s-->
<configuration status="info" monitorinterval="5" >
    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
    <!--    自定义变量-->
    <properties>
        <property name="logPath" value="D:/log"/>
    </properties>


    <!--附加器节点 Appenders节点 : 常见的有三种子节点:Console、RollingFile、File; .-->
    <appenders> 
        <!--Console节点用来定义输出日志到控制台的Appender-->
        <!--name:指定Appender的名字.-->
        <!--target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT.-->
        <Console name="Console" target="SYSTEM_OUT">
            <!--输出格式-->
            <!--SimpleLayout	    以简单的形式显示-->
            <!--HTMLLayout	        以HTML表格显示-->
            <!--PatternLayout	    自定义形式显示 不设置默认为:%m%n-->
                <!-- %d{HH:mm:ss.SSS}	表示输出到毫秒的时间-->
                <!-- %t	                输出当前线程名称-->
                <!-- %-5level	        输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0-->
                <!-- %logger	        输出logger名称-->
                <!-- %msg	            日志文本-->
                <!-- %n	                换行-->
                <!-- %F	                输出所在的类文件名,如Log4j2Test.java-->
                <!-- %L	                输出行号-->
                <!-- %M	                输出所在方法名-->
                <!-- %l	                输出语句所在的行数, 包括类名、方法名、文件名、行数-->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>

        <!--File节点用来定义输出到指定位置的文件的Appender-->
        <!--name:指定Appender的名字.-->
        <!--fileName:指定输出日志的目的文件带全路径的文件名.-->
        <file name="file" fileName="${logPath}/fileLog/myFile.log">
            <!--PatternLayout	自定义形式显示 不设置默认为:%m%n-->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </file>

        <!--RollingFile节点用来定义超过指定条件自动删除旧的创建新的Appender-->
        <!--name:指定Appender的名字.-->
        <!--fileName:指定输出日志的目的文件带全路径的文件名.-->
        <!--filePattern : 指定当发生Rolling时,文件的转移和重命名规则.-->
        <RollingFile name="rollingFile" fileName="${logPath}/rollingFileLog/rollingFile.log" filepattern="${logPath}/rollingFileLog/rollingFile-%d{yyyy-MM-dd}_%i.log.gz">
            <!--PatternLayout	自定义形式显示 不设置默认为:%m%n-->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <!--Policies:指定滚动日志的策略,就是什么时候进行新建日志文件输出日志.-->
            <Policies >
                <!--TimeBasedTriggeringPolicy:Policies子节点,基于时间的滚动策略,
                nterval属性用来指定多久滚动一次,默认是1 hour。modulate=true用来调整时间:
                以凌晨为零点为基准线,interval是6,那么第一次滚动是在 0+6点  第二次就是 0+6+6=12点 -->
                <TimeBasedTriggeringPolicy interval="6"/>
                <!--SizeBasedTriggeringPolicy:Policies子节点,基于指定文件大小的滚动策略,size属性用来定义每个日志文件的大小.-->
                <SizeBasedTriggeringPolicy size="10MB"/>
                <!--DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧的,创建新的(通过max属性),不设置则默认为最多同一文件夹下7个文件开始覆盖-->
                <DefaultRolloverStrategy max="5"/>
            </Policies>
        </RollingFile>

    </appenders>


    <!--在loggers中引用appender附加器 Root节点用来指定项目的根日志,如果没有单独指定Logger,那么就会默认使用该Root日志输出-->
    <loggers>
        <!--Logger节点用来单独指定日志的形式,name:用来指定该Logger所适用的类或者类所在的包全路径,继承自Root节点。-->
        <logger name="com.example" level="info" additivity="false">
            <AppenderRef ref="Console"/>
        </logger>
        <!--若是additivity设为false,则只会在自己的appender里输出,而不会在 父Logger(一般是指root节点) 的appender里输出。-->
        <Logger name="org.springframework" level="info" additivity="false">
            <AppenderRef ref="Console"/>
        </Logger>

        <!--根节点附加器,全局-->
        <root level="info">   
            <!-- AppenderRef子节点,用来指定该日志输出到哪个Appender.-->
            <appender-ref ref="Console"/>
            <appender-ref ref="file"/>
            <appender-ref ref="rollingFile"/>
        </root>
    </loggers>
</configuration>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值