首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

logback 施用

2012-09-10 
logback 应用LogBack -? 一个通用可靠、快速灵活的日志框架,更多信息请参考官方网站。LogBack 将作为Log4j的

logback 应用

LogBack -? 一个通用可靠、快速灵活的日志框架,更多信息请参考官方网站。

LogBack 将作为Log4j的替代,和slf4j组成新的日志系统的完整实现。LogBack分为三个模块:logback-core、logback- classic和logback-access。logback-core是其它两个模块的基础;logback-classic是log4j的一个改良版本; logback-access与Servlet容器集成提供通过Http来访问日志的功能。

SLF4J - 一个通用的日志门面库,为各种Logging API提供了一套通用的日志接口,更多信息请参考官方网站。

SLF4J会根据classpath中所存在的适配器的jar来决定将使用的日志实现库。

?

Logback日志需要依赖一下jar包:

slf4j-api-1.6.0.jar

logback-core-0.9.21.jar

logback-classic-0.9.21.jar

logback-access-0.9.21.jar

主配置文件为logback.xml,放在src目录下或是WEB-INF/classes下,logback会自动加载

同时删除原来的commons-logging.jar和log4j.jar

?

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class Test {

? final Logger logger = LoggerFactory.getLogger(Test.class);

?? ?public void logTest() {

? ?? ?// 不再需要log.isDebugalbe(),代码更简洁

? ?? ?logger.debug(”hello {}”, “amsz”);

?? ?? logger.info("hihi{}","hhhh");

? ?? ?}

}

?

?

?

再看看logback.xml的配置:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

??? <substitutionProperty name="log.base" value="../logs/hzg" />

??? <jmxConfigurator />

??? <appender name="stdout" />

??? </logger>

??? <logger name="com.hzg.test">

??? ??? <level value="INFO" />

??? </logger> ??

???

??? <logger name="org.springframework">

??? ??? <level value="WARN" />

??? </logger>

??? <logger name="org.hibernate">

??? ??? <level value="WARN" />

??? </logger>

??? <logger name="org.hibernate.SQL">

??? ??? <level value="WARN" />

??? </logger>

??? ??? <logger name="org.hibernate.cache">

??? ??? <level value="ERROR" />

??? </logger>

??? <root>

??? ??? <level value="INFO" />

??? ??? <appender-ref ref="stdout" />

??? ??? <appender-ref ref="logfile" />

??? </root>

</configuration>

?

?

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" /></root>
</configuration>

logback.xml的基本配置信息都包含在configuration标签中,需要含有至少一个appender标签用于指定日志输出方式和输出格式,root标签为系统默认日志进程,通过level指定日志级别,通过appender-ref关联前面指定顶的日志输出方式。

例子中的appender使用的是ch.qos.logback.core.ConsoleAppender类,用于对控制台进行日志输出

其中encoder标签指定日志输出格式为“时间 线程 级别 类路径 信息”

logback的文件日志输出方式还提供多种日志分包策略

?

?

?

<appender name="ROLLING" class="ch.qos.logback.classic.db.DBAppender">
??? <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
?????? <dataSource
??????? class="com.mchange.v2.c3p0.ComboPooledDataSource">
????? <driverClass>com.mysql.jdbc.Driver</driverClass>
????? <url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
????? <user>root</user>
????? <password>root</password>
????? </dataSource>
??? </connectionSource>
? </appender>

数据库输出使用ch.qos.logback.classic.db.DBAppender类

?

3、总结:

使用slf4j+logback的优势:

?

支持按文件大小或基于时间的切分方式,可自定义命名模式 支持文件打包(触发器方式) 支持OSGI环境

如果在单纯的logging环境中,使用SLF4J意义不大。如果想在各种logger API中切换,SELF4J是理想选择,另外在新的项目中,使用SLF4J+Logback是比较好的日志框架选型。??

热点排行