Log4J_demo_me_++

本文详细介绍了Log4j的日志配置方法,包括Maven依赖配置、不同级别的日志输出、控制台与文件输出设置及自定义布局样式等。通过具体示例展示了如何为整个项目或特定包设置日志级别。

1.maven

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>

2.log4j.properties

#可以设置级别:debug>info>warn>error
#debug:显示 debug、info、warn、error
#info:显示 info、warn、error
#warn: 显示 warn、error
#error:只error
#此种方式作用于整个工程
#log4j.rootLogger=debug,appender1,appender2
##############################过滤的demo(作用于指定的包下)形如log4j.logger.包名=......##############################
######demo1.
log4j.logger.com.demo1.debug=debug,appender1
log4j.logger.com.demo1.info=info,appender2
log4j.logger.com.demo1.warn=warn,appender3
log4j.logger.com.demo1.error=error,appender4
######demo2
log4j.logger.com.demo2.file=debug,appender2,appender5
log4j.logger.com.demo2.html=info,appender2,appender6
##############################appender 可以输出到多个appender中##############################
###appender1-4  输出到控制台###
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender2=org.apache.log4j.ConsoleAppender
log4j.appender.appender3=org.apache.log4j.ConsoleAppender
log4j.appender.appender4=org.apache.log4j.ConsoleAppender
###appender5-6 输出到文件###
log4j.appender.appender5=org.apache.log4j.FileAppender
log4j.appender.appender6=org.apache.log4j.FileAppender
##############################样式 .设置文件输出样式(更多样式参见org.apache.log4j包下)##############################
#【1】TTCCLayout
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
#【2】SimpleLayout
log4j.appender.appender2.layout=org.apache.log4j.SimpleLayout
#【3】自定义样式
# %r 时间 0
# %t 方法名 main
# %p 优先级 DEBUG/INFO/ERROR
# %c 所属类的全名(包括包名)
# %l 发生的位置,在某个类的某行
# %m 输出代码中指定的讯息,如log(message)中的message
# %n 输出一个换行
# %d{}格式化时间. yyyy:年/MM:月/dd:日/HH:时/mm:分/ss:秒/SSS:毫秒
log4j.appender.appender3.layout=org.apache.log4j.PatternLayout
log4j.appender.appender3.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss:SSS}][%p][%l]:%m%n
log4j.appender.appender4.layout=org.apache.log4j.PatternLayout
log4j.appender.appender4.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%c-%t]:%m%n
#【4】文本文件 (和控制台一样可以有多种样式TTCCLayout、SimpleLayout、PatternLayout)
log4j.appender.appender5.layout=org.apache.log4j.TTCCLayout
#【5】HTML文件
log4j.appender.appender6.layout=org.apache.log4j.HTMLLayout
#设置文件输出路径
#【1】文本文件
log4j.appender.appender5.File=c:/log4j/Log4J_file.log
#【2】HTML文件
log4j.appender.appender6.File=c:/log4j/Log4J_html.html
  1. 测试过程结构图
    这里写图片描述

4.demo.java

import org.apache.log4j.Logger;

public class Demo {

    private static Logger logger = Logger.getLogger(Demo.class);

    public static void main(String[] args) {
        // 记录debug级别的信息
        logger.debug("This is debug message.");
        // 记录info级别的信息
        logger.info("This is info message.");
        // 记录warn级别的信息
        logger.warn("This is warn message.");

        // 记录error级别的信息
        logger.error("This is error message.");
    }
}

5.log4j.xml(XML方式)。。。未完待续

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="appender1"
        class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="logfile08.html" />
        <param name="MaxFileSize" value="1MB" />
        <param name="MaxBackupIndex" value="5" />
        <layout class="org.apache.log4j.HTMLLayout" />
    </appender>

    <root>
        <level value="debug" />
        <appender-ref ref="appender1" />
    </root>

</log4j:configuration>




demo2



<?xml version="1.0" encoding="UTF-8"?>    
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <!-- 控制台输出 -->
    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
        <param name="Encoding" value="UTF-8" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} [%5p] [%c] :%L - %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="levelMin" value="debug" />
            <param name="levelMax" value="fatal" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

    <!-- 自定义定制化日志 -->
    <appender name="Mylog4j" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="Encoding" value="UTF-8" />
        <param name="File" value="c:/syj/xml.log" />
        <param name="DatePattern" value="'.'yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="levelMin" value="fatal" />
            <param name="levelMax" value="fatal" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

    <!-- 设置包限制输出的通道 -->
    <logger name="com.youxi.logs.demo.LogMe" additivity="false">
        <level value="fatal" />
        <appender-ref ref="Mylog4j" />
    </logger>
    <!-- 设置包限制输出的通道 -->
    <!-- <category name="com.youxi.logs.demo.LogMe" additivity="false"> 日志输出级别,起码可以有5个级别,可以扩展自己的级别,邮件发送必须是ERROR级别不好用,所以最后自己扩展一个邮件发送级别 
        <level value="info" /> <appender-ref ref="stdout" /> <appender-ref ref="Mylog4j" 
        /> </category> -->

    <root>
        <!-- 设置输出的级别 -->
        <priority value="info" />
        <!-- 设置包限制输出的通道 -->
        <appender-ref ref="stdout" />
    </root>


</log4j:configuration>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值