一、关于日志
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("执行完毕..."); } }
结果示例
注:具体使用可以根据项目不同阶段的需求等设置日志级别、日志打印方式等等。