SLF4J 使用简记

SLF4J 使用简记

使用 SLF4J有一段时间了,在此作上些许记录,以作提示。
本文使用的实际实现的日志框架是 Log4j,所以使用 log4j.properties 文件

SLF4J 需要引入的jar包

  • Maven
<dependencies>
    <dependency>
  	<groupId>org.slf4j</groupId>
  	<artifactId>slf4j-log4j12</artifactId>
        <version>1.7.21</version>
    </dependency>
<dependencies>

Maven 会连带引入以上包的依赖树以来的包,如下图所示

添加日志配置文件 log4j.properties

  • log4j.properties 示例
### set log levels ###
log4j.rootLogger = debug ,  stdout ,  D ,  E

### 输出到控制台 ###
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{ABSOLUTE} %5p %c{1}:%L - %m%n

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [%t:%r] - [%p]  %m%n

### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = /logs/error.log ## 异常日志文件名
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [%l:%c:%t:%r] - [%p]  %m%n

更多 Log4j 输出配置参数,参看: Apache Log4j PatternLayout

SLF4JJava 类中使用的示例

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SLF4JUseCase {

	final static Logger log = LoggerFactory.getLogger(SLF4JUseCase.class);

	public static void main(String[] args) {
		log.info("main 方法开始");
		log.debug("信息");
		try{
			String currentClassPath = SLF4JUseCase.class.getResource("").getPath();
			log.info("{} 是当前类所在的路径",currentClassPath);
		}catch(Exception e){
			log.error("路径获取错误。",e);
		}
	}
}

  • 运行后输出如下:
2016-07-10 15:08:35:132  INFO SLF4JUseCase:main:9 - main 方法开始
2016-07-10 15:08:35:134 DEBUG SLF4JUseCase:main:10 - 信息
2016-07-10 15:08:35:136  INFO SLF4JUseCase:main:13 - /C:/Users/UserName/workspaces/Prictice/demo/target/classes/ 是当前类的路径
posted @ 2016-07-10 15:11  狐狸什妖  阅读(226)  评论(0编辑  收藏  举报