`
yonlist
  • 浏览: 85307 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

抛弃log4j改用logback

阅读更多

公司的新平台最近日志总出问题:

- 满容量后不自动备份,并且把该日志内容全部刷掉。。

- 满容量后不自动备份,继续写,导致日志文件异常之大。。

 

关于log4j的配置,RollingFileAppender几年来都是这么用的没什么好说的,

问题原因我还没找到,但估计多少和JDK升级到1.6有关

 

分割线============================================

 

logback的主页,链接一下:http://logback.qos.ch/

logback是log4j的创始人开发的新一代日志组件,性能更好,功能更强大!

 

logback实现了SLF4J,所以我们可以直接依赖SLF4J的接口~~

 

需要的jar:

slf4j-api-1.6.3.jar;

logback-core-0.9.30.jar

logback-classic-0.9.30.jar

 

可选的jar:

logback-access-0.9.30.jar

 

slf4j的版本要求不高,看教程是1.6.2,我用的是1.6.3

logback-access这个是Web控制台,JavaEE的可以考虑试试。

 

调用:

 

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

public class Hello {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Logger log = LoggerFactory.getLogger(Hello.class);
		log.info("hello world");
		
	}

}

注意,依赖的是SLF4J

然后运行一下就能看到效果了。

 

这里logback有一个默认的日志配置,如果classpath中找不到logback.xml或logback-test.xml,就会启用这个默认的配置。

 

关于logback的配置,总体思路和log4j类似,内置的日志类型更为丰富,详见:http://logback.qos.ch/manual/index.html

 

这里给一个我使用下来觉得不错的配置,供大家参考:

 

<configuration scan="true" scanPeriod="30 seconds">
	<appender name="ROLLING" 
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<prudent>true</prudent>
		<rollingPolicy 
			class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>
				log/myApp-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<maxHistory>30</maxHistory>
			<timeBasedFileNamingAndTriggeringPolicy 
				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>10MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<pattern>%date %level [%thread] %logger.%class{0}#%method [%file:%line] %msg%n</pattern>
		</encoder>
	</appender>
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%date %level [%thread] %logger.%class{0}#%method [%file:%line] %msg%n</pattern>
		</encoder>
	</appender>
	
	<root level="info">
		<appender-ref ref="STDOUT" />
	</root>
	
	<logger name="myApp">
		<appender-ref ref="ROLLING" />
	</logger>
</configuration>
 

最后说一下改造后的效果:

恩,非常理想,为啥我不早点用这好东西

分享到:
评论

相关推荐

    日志 log4j-slf4j+logback1.3.0

    本文将深入探讨“日志4j(Log4j)、SLF4J(Simple Logging Facade for Java)和logback 1.3.0”这三者之间的关系以及它们在Java应用中的作用。 首先,Log4j是Apache软件基金会开发的一个流行的日志记录框架,它允许...

    log4j 和 logback配置资源

    Logback分为三个组件:logback-classic(实现了SLF4J接口,兼容log4j API)、logback-core(提供基础架构)和logback-access(用于Servlet环境)。Logback的配置同样通过XML文件完成,其配置灵活性更高,例如支持...

    springmvc log4j2 logback 注解 jackson 日志脱敏实现源码

    本资源包含的是关于`SpringMVC`、`Log4j2`、`Logback`以及`Jackson`的日志脱敏实现源码,提供了多种实现方式,旨在帮助开发者在保障信息安全的同时,充分利用日志进行系统分析。 1. **基于正则表达式的日志脱敏实现...

    十个 log4j 转移到LogBack的理由

    LogBack 是一个日志框架,它是 Log4j 的后继者,由 Log4j 的创始人 Ceki Gülcü 与 Sébastien Pennec 共同创建。本文将探讨十个理由,解释为什么你应该从 log4j 迁移到 LogBack。 1. **性能提升**:LogBack 在...

    log4j logback slf4j

    本文将深入探讨三个重要的Java日志框架——Log4j、Logback和SLF4J,并分析它们之间的关系和使用场景。 **Log4j** Log4j是Apache组织的一个开源项目,是Java世界中最先广泛使用的日志记录框架之一。它的核心功能...

    Mybatis日志Log4j与Logback.pdf

    Mybatis日志系统涉及到两种主要的日志框架:Log4j和Logback。Log4j是早期流行的Java日志记录框架,但随着技术的发展,它的1.x版本在性能和并发性方面逐渐暴露出一些局限性,并且已经不再维护。Logback是Log4j的创始...

    如何将应用的log4j替换成logback详解

    `logback-classic`是Logback的用户接口,`logback-core`是其核心库,而`log4j-over-slf4j`则允许将Log4j的日志调用桥接到SLF4J。 ```xml &lt;!-- logback日志配置开始 --&gt; &lt;groupId&gt;ch.qos.logback &lt;artifactId&gt;...

    slf4j+logback 于log4j+commons-logging大PK

    今天我们将聚焦两个流行的日志框架——SLF4J(Simple Logging Facade for Java)和Logback,以及它们与Log4j和Commons-Logging的对比。 SLF4J是一个接口层的日志框架,它提供一个统一的API,允许用户在运行时插入...

    调试日志之slf4j+logback

    SLF4J(Simple Logging Facade for Java)是一个日志门面,它为各种日志框架提供了统一的接口,如Log4j、Logback等。它的主要目的是让开发者能够在部署时自由选择所需的日志实现,而无需修改代码。SLF4J通过引入`...

    log4j,log4j2,logback 日志插件的使用例子

    2. log4j2 的配置详解,JDBC 配置,CloseableThreadContext 的使用(自定义输出日志文件 例如 logback MDC) 3.logback 的XML配置与使用,MDC的使用,SiftingAppender,DBAppender(c3p0,druid) 详细查看代码:README.md ...

    Log4j2简介及与Log4j效率对比

    与Log4j 1.x相比,Log4j2在设计上进行了重大改进,并解决了Logback等其他日志框架中存在的某些体系结构问题。 #### 特性概述 1. **审计功能**:Log4j2设计时考虑到了审计需求,这意味着即使在配置更新过程中,它也...

    SpringBoot框架配置log4j和log4j2的配置代码

    SpringBoot默认使用的是Logback,但通过简单的配置,我们也可以切换到Log4j。 #### 配置Log4j 1. **添加依赖**:首先,在`pom.xml`文件中,添加Log4j的依赖。 ```xml &lt;groupId&gt;org.springframework.boot ...

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    SLF4J是一个抽象层,为各种日志框架提供了统一的API,如Logback、Log4j等。它的主要优点在于可以让你在不修改代码的情况下更换底层的日志框架,只需改变类路径上的绑定即可。SLF4J提供了丰富的日志级别,如DEBUG、...

    快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)-附件资源

    快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)-附件资源

    日志框架总结JUL、Log4j、Log4j2、Logback以及门面技术

    ### 日志框架总结:JUL、Log4j、Log4j2、Logback及门面技术 #### 日志框架与日志门面的区别 在软件开发过程中,日志记录是必不可少的一部分,它可以帮助开发者追踪应用运行的状态,及时发现并解决出现的问题。日志...

    logback+self4j 进行日志记录

    **SLF4J 是一个日志门面,它为各种日志框架提供了统一的接口,如Log4j、Logback等。这样做的好处是,开发者可以在不修改代码的情况下更换底层的日志实现,只需改变依赖即可。** **Logback 是 SLF4J 的默认实现,由 ...

    log4j-1.2.15.jar

    《深入理解Log4j 1.2.15.jar:日志管理的基石》 在IT行业中,日志管理是一项至关重要的任务,它对于系统监控、故障排查以及性能优化起着不可忽视的作用。Log4j作为Java平台上的一个经典日志记录框架,因其强大的...

    log4j示例项目

    除了基本的日志功能,Log4j还支持与其他日志框架(如Logback)的互操作,以及与Spring等框架的集成,提供更强大的日志管理和监控能力。 通过这个"log4j示例项目",我们可以亲手实践这些概念,更好地理解和运用Log4j...

    使用Slf4j集成Log4j2构建项目日志系统的完美解决方案.docx

    Log4j2是Log4j的升级版本,它基于LMAX Disruptor的异步日志在多线程环境下性能远远优于Log4j 1.x和logback。 本文将详细介绍如何使用Slf4j集成Log4j2构建项目日志系统的完美解决方案。 背景: 随着项目的发展,对...

Global site tag (gtag.js) - Google Analytics