论坛首页 Java企业应用论坛

Using slf4j with logback

浏览 2154 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-09-12  
<div class="iteye-blog-content-contain" style="font-size: 14px;"> <p>slf4j是一款非常不错的关于log的开源框架,logback是依托于log4j的api,但是它提供了更多的属性,不管是在性能、内存损耗上,都有显著提高,并且它能够提供自动加载、过滤以及其它的属性特征。</p> <p>第一步,建立pom.xml</p> <pre name="code" class="java"><properties> <slf4j.version>1.6.4</slf4j.version> <logback.version>1.0.1</logback.version> </properties> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> </dependency> </dependencies></pre> <p> 第二步,创建配置文件,Logback支持两种方式,传统方式是xml以及<span style="color: #333333; font-family: Arial, serif; line-height: 22px; font-size: 12px;">Groovy DSL style,命名指定为logback.xml放到classpath</span></p> <pre name="code" class="java"><?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern> </encoder> </appender> <logger name="com.lordofthejars.foo" level="INFO" additivity="false"> <appender-ref ref="STDOUT" /> </logger> <!-- Strictly speaking, the level attribute is not necessary since --> <!-- the level of the root level is set to DEBUG by default. --> <root level="DEBUG"> <appender-ref ref="STDOUT" /> </root> </configuration></pre> <p><span style="color: #333333; font-family: Arial, serif; line-height: 22px; font-size: 12px;"> 通过上述的配置文件,一目了然能够看明白,它的日志级别,以及需要追加的日志的目录,如果在根目录中已经打印log,而子目录也被授予print,那么可以通过追加属性这是false,它只会打印一次。</span></p> <p><span style="color: #333333; font-family: Arial, serif; line-height: 22px; font-size: 12px;">第三步:建立一个类,介绍下如何使用</span></p> <pre name="code" class="java">public class BarComponent { private static final Logger logger = LoggerFactory.getLogger(BarComponent.class); public void bar() { String name = "lordofthejars"; logger.info("Hello from Bar."); logger.debug("In bar my name is {}.", name); } }</pre> <p><span style="color: #333333; font-family: Arial, serif; line-height: 22px; font-size: 12px;"> 它会根据{}这一对,用name参数进行替代,是不是比较好用,好像有点C的语法。</span></p> <p><span style="color: #333333; font-family: Arial, serif;"><span style="font-size: 12px; line-height: 22px;">如果你对于groovy属性,同样也可以采用DSL Style方式</span></span></p> <p><span style="color: #333333; font-family: Arial, serif;"><span style="font-size: 12px; line-height: 22px;"></span></span></p> <pre name="code" class="java"><dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy</artifactId> <version>${groovy.version}</version> <scope>runtime</scope> </dependency></pre> <p><span style="color: #333333; font-family: Arial, serif;"><span style="font-size: 12px; line-height: 22px;"> 类同于刚才的logback.xml的语法</span></span></p> <p><span style="color: #333333; font-family: Arial, serif;"><span style="color: #333333; font-family: Arial, serif;"></span></span></p> <pre name="code" class="java">import ch.qos.logback.classic.encoder.PatternLayoutEncoder import ch.qos.logback.core.ConsoleAppender import static ch.qos.logback.classic.Level.DEBUG import static ch.qos.logback.classic.Level.INFO appender("STDOUT", ConsoleAppender) { encoder(PatternLayoutEncoder) { pattern = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} Groovy - %msg%n" } } logger("com.lordofthejars.foo", INFO) root(DEBUG, ["STDOUT"])</pre> <p><span style="color: #333333; font-family: Arial, serif;"><span style="color: #333333; font-family: Arial, serif;"> 结论:</span></span></p> <p><span style="color: #333333; font-family: Arial, serif;">logback比logg4j好用,性能指标也比较高,值得推荐的一款日志的框架。</span></p> </div>
   发表时间:2013-09-18  
楼主 不会长的和排版一样吧,烂七八糟
0 请登录后投票
   发表时间:2013-09-20  
为什么记个日志要搞出这么多种框架,log4j不够用么?
还要commons-logging、slf4j、logback
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics