log4j日志工具

一、关于日志

1、日志定义:

  项目在运行阶段产生的信息

2、日志级别

最常见的日志级别有4个:
  error :错误日志
  warn:警告日志
  info:流程日志
  debug:调试日志
 
优先级从高到低分别是ERROR、WARN、INFO、DEBUG
log4j程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少

3、日志级别的选择

在代码开发阶段:使用debug级别
在正式运行阶段:使用ERROR、WARN、INFO中的某一个
  info:想查看流程信息
  warn:查看警告信息
  error:只需要记录错误信息
   注意:在项目运行阶段,日志打印越多,项目执行性能越慢
 
备注:一个完整的maven项目目录如下:
  src/main/java
  src/main/resources        #eclipse创建的maven项目可能默认没有resource目录,可以自己创建:
  src/test/java
  src/test/resources        #注:若没有test/resources目录,test中的程序会找main目录下的resource
 

4、两个日志相关的工具:

log4j:日志记录框架(具体的实现)          
     log for java   Apache开源项目,可将日志输送到控制台、文件、网络等;可通过配置文件来灵活配置,控制日志输出格式、定义日志级别。
 
slf4j:日志框架接口                                
    简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。
 
实际中一种方式是slf4j+log4j组合使用

二、如何使用

1、添加maven依赖:

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.10</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.10</version>
        </dependency>

说明:

    可以到maven中央仓库查找:Maven Repository: Search/Browse/Explore  http://mvnrepository.com/

2、编辑.properties文件:

   在eclipse工具中,创建repository:在项目名称上右击--->New--->Source Folder,添加一个与main和test同级

的repository目录,用于存放配置文件、项目部署说明reademe等信息。

编辑一个log4j.properties

一个打印日志到控制台的示例:

log4j.rootLogger=info,stdout

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

3、编写测试类

import static org.junit.Assert.*;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class test {
    @Test
    public void test() throws Exception {
        Logger logger = LoggerFactory.getLogger(test.class);   //###
        logger.info("测试开始...");                 //###
        System.out.println("项目执行过程TODO----");
        logger.info("执行完毕...");
    }
}

结果示例

      

注:具体使用可以根据项目不同阶段的需求等设置日志级别、日志打印方式等等。

 

posted @ 2016-09-09 00:41  VNX  阅读(775)  评论(0编辑  收藏  举报