java日志组件的那些破事
来源: 阅读:752 次 日期:2015-04-10 14:42:26
温馨提示: 小编为您整理了“java日志组件的那些破事”,方便广大网友查阅!

由于现在开源框架日益丰富,好多开源框架使用的日志组件不尽相同。存在着在一个项目中,不同的版本,不同的框架共存。

其中有一些标准通用接口,标准实现,各种桥接器的存在,下面就让笔者树立一下这些框架之间的关系。

名单

slf4J与旧日志框架的关系

slf4j等于commons-logging,是各种日志实现的通用入口,会根据classpath中存在下面哪一个Jar来决定具体的日志实现库。

logback-classic(默认的logback实现)

slf4j-jcl.jar(apache commons logging)

slf4j-logj12.jar(log4j 1.2.4)

slf4j-jdk14(java.util.logging)

将所有使用旧式日志API的第三方类库或旧代码的日志调用转到slfj

jcl-over-slf4j.jar/jcl104-over-slf4j:apache commons logging 1.1.1/1.0.4,直接替换即可。

log4j-over-slf4j.jar:log4j,直接替换即可。

jul-to-slf4j:jdk logging,需要在程序开始时调用SLF4JBridgeHandler.install()来注册listener参考JulOverSlf4jProcessor,可在applicationContext.xml中定义该bean来实现初始化。注意原有的log4j.properites将失效,logback网站上提供转换器,支持从log4j.properties 转换到logback.xml 。

如何配置Logback

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>${slf4j.api.version}</version>

</dependency>

<!-- logback -->

<dependency>

<groupId>ch.qos.logback</groupId>

<artifactId>logback-core</artifactId>

<version>1.1.0</version>

<type>jar</type>

</dependency>

<dependency>

<groupId>ch.qos.logback</groupId>

<artifactId>logback-classic</artifactId>

<version>1.1.0</version>

<type>jar</type>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>log4j-over-slf4j</artifactId>

<version>1.6.6</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>jcl-over-slf4j</artifactId>

<version>1.6.6</version>

</dependency>

与遗留Logging框架兼容

SLF4J对于Log4J 1和Apache commons Logging的支持方式是提供了实现Log4j和Apache commons Logging接口的SLF4J实现。使用方式是

去取对Log4J和Apache commons Logging的Jar包的引用

引入SLF4J的对应接口的实现包。

移除引用

如果你的系统是直接的使用了Log4j或者Apache commons Logging框架的话,你可以直接把对他们的引用去掉就可以了。如果是你所引用的第三方包里面引用了Log4j或者Apache commons Logging,可以使用<exclusions>标签去掉对他们的引用,如下所示:

<dependency>

<groupId>org.springframework.ldap</groupId>

<artifactId>spring-ldap-core</artifactId>

<exclusions>

<exclusion>

<artifactId>commons-logging</artifactId>

<groupId>commons-logging</groupId>

</exclusion>

</exclusions>

</dependency>

logback.xml

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

<configuration scan="true" scanPeriod="30 seconds">

<!--Appendar详解: -->

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

<!-- 当前Log文件名 -->

<file>ldap-pwd.log</file>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<!-- 非当天的Log文件压缩备份为 archive/ldap-pwd.2014-08-10.zip -->

<fileNamePattern>archive/ldap-pwd.%d{yyyy-MM-dd}.zip</fileNamePattern>

<!-- 超过30天的备份文件会被删除 -->

<maxHistory>30</maxHistory>

</rollingPolicy>

<layout class="ch.qos.logback.classic.PatternLayout">

<!-- 格式说明:http://logback.qos.ch/manual/layouts.html#ClassicPatternLayout -->

<Pattern>%d [%thread] %-5level %40logger{40} - %msg%n</Pattern>

</layout>

</appender>

<logger name="cn.justfly.training.logging" level="info" />

<root level="warn">

<appender-ref ref="FILE" />

</root>

</configuration>

更多信息请查看IT技术专栏

更多信息请查看网络编程
手机网站地址:java日志组件的那些破事
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map