`

slf4j+logback使用

阅读更多
一 环境配置: XP+JDK1.5+Myeclipse6.6
二 各组件的官方网址:
   slf4j:http://www.slf4j.org/download.html
   logback:http://logback.qos.ch/download.html
   log4j.properties 转换为 logback.xml 工具页面
   http://logback.qos.ch/translator

三 项目文件:
参考资料
Java日志框架:SLF4J, Apache Common-Logging, Log4J和Logback
http://liuzidong.iteye.com/blog/776072
SLF4J 的几种实际应用模式--之一:SLF4J+Log4J
http://cammsia.iteye.com/blog/645080
SLF4J 的几种实际应用模式--之二:SLF4J+Logback
http://cammsia.iteye.com/blog/645078

Logback 分为三个模块:logback-core,logback-classic,logback-access。logback-core 是核心;logback-classic 改善了 log4j,且自身实现了 SLF4J API,所以即使用 Logback 你仍然可以使用其他的日志实现,如原始的 Log4J,java.util.logging 等;logback-access 让你方便的访问日志信息,如通过 http 的方式。
需要的配置文件和组件包,下面三个 jar 文件和一个 xml文件都是要放在项目的 ClassPath 上。
slf4j-api-1.6.1.jar
logback-classic-0.9.24.jar
logback-core-0.9.24.jar
  

四 示例代码:摘自slf4j

class Bar {

	Logger logger = LoggerFactory.getLogger(Bar.class);

	public void doIt() {
		logger.debug("doing my job");
	}
}

   

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

import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.core.joran.spi.JoranException;
import ch.qos.logback.core.util.StatusPrinter;

public class MyAppWithConfigFile {

	public static void main(String[] args) {
		Logger logger = LoggerFactory.getLogger(MyAppWithConfigFile.class);
		LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();

		try {
			JoranConfigurator configurator = new JoranConfigurator();
			lc.reset();
			configurator.setContext(lc);
			// configurator.doConfigure("E:/testworkspace/SLF4J/src/chapters/architecture/sample-config-2.xml");
			[color=red]configurator.doConfigure(MyAppWithConfigFile.class
					.getResourceAsStream("sample-config-3.xml"));[/color]
		} catch (JoranException je) {
			StatusPrinter.print(lc.getStatusManager());
		}
		logger.info("Entering application.");
		Bar bar = new Bar();
		bar.doIt();
		logger.info("Exiting application.");
		logger.warn("WARN...");
		logger.error("ERROR...");
	}
}



<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- 声明变量 -->
<substitutionProperty name="log.base" value="./logs/hzg" />	
	
<appender name="STDOUT"	class="ch.qos.logback.core.ConsoleAppender">
	<layout class="ch.qos.logback.classic.PatternLayout">
	   <pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern>
	</layout>
	</appender>

	<appender name="FILE"	class="ch.qos.logback.core.FileAppender">
	     <layout class="ch.qos.logback.classic.PatternLayout">
		<pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern>
	     </layout>
	     <File>${log.base}.log</File>
	</appender>	
	
	<logger name="chapters.architecture" level="error" />

	<root level="debug">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
	</root>
	
</configuration>



其中红色地方可以设置日志文件的存储位置,如是WEB应用程序可在Servlet中进行相应设置
<logger name="chapters.architecture" level="error" />
这个可以设置对应包下面所要显示的日志级别
附件是slf4j的示例代码及所有相关.jar文件
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics