log4j日志打印配置

文件名:log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration monitorInterval="5">
    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->

    <!--变量配置-->
    <Properties>
        <property name="LOG_PATTERN" value="[%date{yyyy/MM/dd HH:mm:ss.SSS}] [%thread:%c{1}:%L] %-5level  - %msg%n"/>
        <!--%c{1} 表示日志位置的类名,%L当前行号, %msg日志信息,%n换行-->
        <property name="FILE_PATH" value="./logs"/>
        <property name="FILE_NAME" value="fileName日志文件名"/>
    </Properties>

    <appenders>

        <!--CONSOLE 打印-->
        <console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <!--控制是否在控制台输出-->
            <!--<ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>-->
        </console>

        <!-- INFO 文件记录-->
        <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/${FILE_NAME}.log"
                     filePattern="${FILE_PATH}/${FILE_NAME}.log.%d{yyyy-MM-dd}">
            <!--控制台只输出level=info及以上级别的信息(onMatch),onMatch="DENY"表示不在控制台输出,其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1d-->
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
        </RollingFile>

        <!-- ERROR-->
        <RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log"
                     filePattern="${FILE_PATH}/error.log.%d{yyyy-MM-dd}">
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
        </RollingFile>

    </appenders>

    <loggers>
        <!--过滤掉spring的一些无用的DEBUG信息-->
        <!--org.springframework这个类或包下所有日志的记录器进行了配置-->
        <Logger name="org.springframework" level="info" additivity="false">
            <AppenderRef ref="Console"/>
        </Logger>

        <root level="info">
        	<!--日志打印配置-->
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileError"/>
        </root>
    </loggers>
</configuration>

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="INFO">
    <!-- 全局参数 -->
    <Properties>
        <Property name="pattern" value="[%date{yyyy/MM/dd HH:mm:ss.SSS}] [%thread] %-5level  - %msg%n"/>

        <!-- 改成各服务应用名称,变量 -->
        <Property name="serviceName" value="serviceName"/>
        <property name="errorName" value="error" />
        <property name="path" value="./logs/" />
    </Properties>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT" follow="true">
            <PatternLayout>
            	<!--引用了上面的日志输出格式pattern-->
                <pattern>${pattern}</pattern>
            </PatternLayout>
        </Console>

        <RollingFile name="errorFile" fileName="${path}/${errorName}.log" filePattern="${path}/${errorName}.log.%d{yyyy-MM-dd}">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${pattern}" />
            <Policies>
                <!-- TimeBasedTriggeringPolicy需要和filePattern配套使用,由于filePattern配置的时间最小粒度是dd天,所以表示每一天新建一个文件保存日志。SizeBasedTriggeringPolicy表示当文件大小大于指定size时
               ,生成新的文件保存日志。 -->
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
            </Policies>
        </RollingFile>


        <RollingFile name="infoFile" fileName="${path}/${serviceName}.log" filePattern="${path}/${serviceName}.log.%d{yyyy-MM-dd}">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${pattern}" />
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
            </Policies>

        </RollingFile>
    </Appenders>


    <Loggers>
        <Logger name="org.springframework" level="INFO" />
        <Root level="INFO">
        	<!--<AppenderRef ref="console"></AppenderRef>不在控制台打印-->
            <AppenderRef ref="console"></AppenderRef>
            <AppenderRef ref="infoFile"></AppenderRef>
            <AppenderRef ref="errorFile"></AppenderRef>
        </Root>
    </Loggers>

</configuration>

需求说明 (1)使用UserDaoImp1类的方法查找用户,并用User类的getUserInfo()方法输出用户信息 (2)使用一个不存在的用户名查找用户,使用try-catch对抛出的异常进行处理 实现思路及关键代码 (1)在测试类中调用UserDaoImp类的addUser(User user)方法,添加用户,然后用findUser(String uName)方法查找并输出用户信息 (2)在测试类中调用UserDaoImp1类的findUser(String uName)方法,使用不存在的用户名查找用户,并试图输出用户信息 (3)对抛出的异常使用try-catch进行异常处理。 实践二:使用try-catch-finally进行异常处理 需求说明 (1)对实践1的异常使用try-catch-finally进行异常处理 (2)在finally块输出是否抛出了异常 实现思路及关键代码 (1)在任务一中的代码上增加finally块 (2)为了判断在finally块输出是否抛出异常,可以设置一个变量,在catch块里修改这个变量 实践三:使用throw和throws 需求说明 修改UserDaoImpl类的updateUser(User user)方法,要求如果用户id被修改,则: (1)不执行更新 (2)抛出一个Exception异常 (3)异常消息是“用户id不能修改” 实现思路及关键代码 (1)修改UserDao类的updateUser(User user)方法,声明抛出异常 (2)修改UserDaoImpl类的updateUser(User user)方法,加入判断语句,并抛出异常 (3)在测试类中调用,并进行异常处理 实践四:使用log4j 需求说明 (1)使用log4j输出日志信息 (2)查看输出日志信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值