Log4j

  对于一个完整的软件而言,日志是必不可少的。程序从开发、测试、维护、运行等环节,都需要向控制台或文件等位置输出大量信息。这些信息的输出,在很多时候是使用System.out.println()无法完成的。
  日志信息根据用途与记录内容的不同,分为调试日志、运行日志、异常日志等。
  用于日志记录的技术很多,如 jdk 的 logger 技术,apache 的 log4j、log4j2 技术等。
  Log4j 的全称为 Log for java,即,专门用于 java 语言的日志记录工具。其目前有两个版本:Log4j 与 Log4j2。

Log4j 基础

  • Log4j 下载
    log4j 下载地址: Log4j下载地址
  • 日志级别
    为了方便对于日志信息的输出显示,对日志内容进行了分级管理。日志级别由高到低 ,共分 6 个级别:fatal(致命的)、error、warn、info、debug、trace(堆栈)

    为什么要对日志进行分级呢?
    无论是将日志输出到控制台,还是文件,其输出都会降低程序的运行效率。但由于调试、运行维护的需要,客户的要求等原因,需要进行必要的日志输出。这时就必须要在代码中加入日志输出语句。这些输出语句若在程序运行时全部执行,则势必会降低运行效率。例如,使用System.out.println()将信息输出到控制台,则所有的该输出语句均将执行。会大大降低程序的执行效率。而要使其不输出,唯一的办法就是将这些输出语句逐个全部删除。这是个费时费力的过程。
    将日志信息进行分级管理,便可方便的控制信息输出内容及输出位置:哪些信息需要输出,哪些信息不需要输出,只需在一个日志输出控制文件中稍加修改即可。而代码中的输出语句不用做任何修改。
    从这个角度来说,代码中的日志编写,其实就是写大量的输出语句。只不过,这些输出语句比较特殊,它们具有级别,在程序运行期间不一定被执行。它们的执行是由另一个控制文件控制。
    
  • 日志输出控制文件
    Log4j 的日志输出控制文件,主要由三个部分构成:

    1. 日志信息的输出位置:控制日志信息将要输出的位置,是控制台还是文件等。
    2. 日志信息的输出格式:控制日志信息的显示格式,即以怎样的字符串形式显示。
    3. 日志信息的输出级别:控制日志信息的显示内容,即显示哪些级别的日志信息。

    有了日志输出控制文件,代码中只要设置好日志信息内容及其级别即可,通过控制文件便可控制这些日志信息的输出了

  • Log4j在程序中的使用
    项目:Log4jTest

    • 实现步骤

      1. 导入相应的jar包

        log4j-api-2.9.1.jar
        log4j-core-2.9.1.jar
      2. 放入日志输出控制文件

        将属性文件 log4j.properties 直接放到项目的 src 下

        <?xml version="1.0" encoding="UTF-8"?>
        <Configuration status="WARN">
            <Appenders>
                <File name="file" fileName="app.log">
                    <PatternLayout>
                        <Pattern>%d %p %c{1.} [%t] %m %ex%n</Pattern>
                    </PatternLayout>
                </File>
                <Console name="STDOUT" target="SYSTEM_OUT">
                    <PatternLayout pattern="%m%n"/>
                </Console>
            </Appenders>
            <Loggers>
                <Root level="trace">
                    <AppenderRef ref="file" level="DEBUG"/>
                    <AppenderRef ref="STDOUT" level="INFO"/>
                </Root>
            </Loggers>
        </Configuration>
      3. 代码中实现日志记录

        import org.apache.logging.log4j.Logger;
        import org.apache.logging.log4j.LogManager;
        
        public class TestLog4j {
            public static void main(String[] args) {
                //创建日志记录对象Logger
                Logger logger = LogManager.getLogger(TestLog4j.class);
                System.out.println("你好");
                logger.info("这是info消息");
                logger.debug("这是debug消息");
                logger.warn("这是warn消息");
                logger.error("这是error消息");
            }
        }

        在要输出日志的类中创建日志对象 Logger,并通过 Logger 的方法在代码中加入日志输出语句。在 Java 代码中进行日志输出,需要用到 Logger 类的静态方法 getLogger()。
        注意,Logger 为 org.apache.log4j 包中的类。

      4. 效果

    • 控制台输出
      控制台输出
    • 日志文件记录
      日志文件记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值