`

slf4j+logback记录日志

 
阅读更多
  • Java常见的日志框架

java.util.logging:JDK1.4之后自带的日志API

Commons-logging : apache最早提供的日志的门面接口。避免和具体的日志方案直接耦合。类似于JDBC 的api 接口,具体的的JDBC driver 实现由各数据库提供商实现。通过统一接口解耦,不过其内部也实现了一些简单日志方案。
Log4j : 经典的一种日志解决方案。内部把日志系统抽象封装成Logger 、appender 、pattern 等实现。我们可以通过配置文件轻松的实现日志系统的管理和多样化配置。
Slf4j : 全称为Simple Logging Facade for JAVA:java简单日志门面。 是对不同日志框架提供的一个门面封装。可以在部署的时候不修改任何配置即可接入一种日志实现方案。和commons-loging 应该有一样的初衷。

Logback : LOGBack 作为一个通用可靠、快速灵活的日志框架,将作为Log4j 的替代和SLF4J 组成新的日志系统的完整实现。具有极佳的性能,在关键路径上执行速度是log4j 的10 倍,且内存消耗更少。

 

  • 为何选择Slf4j

假如项目中原来用的是log4j记录日志,所有的地方都引入log4j的Logger类,后续要改成logback记录日志。每个调用的地方都要修改,这显然不可取。

 

看下面这个简单的例子slf4j帮我们做了什么。

引入jar包slf4j-api-1.7.5.jar

新建测试类LogTest

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

public class LogTest {
	final Logger logger = LoggerFactory.getLogger(LogTest.class);
	
	public void testLog(){
		logger.info("this is logger test....");
	}
	
	public static void main(String[] args) {
		LogTest lt = new LogTest();
		lt.testLog();
	}
}

注意这里引入的Logger类是slf4j的。

再引入slf4j-jdk14-1.7.5.jar,这里打出的日志是jdk自带log打出来的

2013-12-25 15:13:09 com.log.test.LogTest testLog
信息: this is logger test....

 移除slf4j-jdk14-1.7.5.jar,再引入slf4j-simple-1.7.5.jar,这里用的是另一种日志输出

[main] INFO com.log.test.LogTest - this is logger test....

我们的代码未做任何修改,就使用不同的日志类打印日志。注意为了避免冲突,只能有一个log实现jar包被引入工程

  • slf4j+logback

工程需要导入jar包:slf4j-api-1.7.5.jar,logback-core-1.0.13.jar,logback-classic-1.0.13.jar,logback-access-1.0.13.jar。在classpath下添加logback.xml,名字固定

logback.xml示例

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
	<!-- 日志存放的路径 ,默认为当前目录的logs -->
	<property name="USER_HOME" value="." />
	<!-- 输出到窗口 -->
	<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%date{HH:mm:ss.SSS} %-5level %logger{40} - %msg%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>
	<!-- 输出到文件 -->
	<appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!-- 按天分文件夹存放 ,并压缩 .gz -->
			<fileNamePattern>${USER_HOME}/logs/%d{yyyy-MM-dd}/log.%i.txt.gz</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<!-- 每个文件的最大值 5MB,超过则编号,生成新文件 -->
				<maxFileSize>5MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<pattern>%date{HH:mm:ss.SSS} %-5level %logger{40} - %msg%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>
	<root level="INFO">
		<appender-ref ref="stdout" />
		<appender-ref ref="logfile" />
	</root>
</configuration>

 

这xml定义的两种日志输出:stdout控制台输出和logfile日志文件输出,两个输出都是info级别。

日志文件输出的策略是每天生成一个文件夹,每个文件夹下日志文件大于5M生成新的文件。

更多含义请参考http://aub.iteye.com/blog/1101222

 

最后来看下logback的日志级别

xml里面level节点可配值TRACE, DEBUG, INFO, WARN, ERROR, ALL, OFF

ALL为显示所有,OFF为不显示

看如下测试函数

public void testLog(){
        //TRACE, DEBUG, INFO, WARN, ERROR, ALL, OFF
        log.trace("======trace");  
        log.debug("======debug");  
        log.info("======info");  
        log.warn("======warn");  
        log.error("======error"); 
}

 配置TRACE,打印trace以下所有方法。配置INFO,打印info下面所有方法。

 

分享到:
评论

相关推荐

    详解Spring Boot 使用slf4j+logback记录日志配置

    本篇文章主要介绍了Spring Boot 使用slf4j+logback记录日志配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    tomcat9-slf4j-logback:Tomcat 9.0.x的SLF4J和Logback集成

    Tomcat SLF4J Logback是tomcat的替代产品,它允许所有内部日志记录全部使用我们喜欢的slf4j / logback库。 注意 从logback 1.1.7开始,不再需要在server.xml中包含${catalina.home}来进行logback访问。 我们还重新...

    Java-Spring-logging-slf4j-logback:#Spring日志记录slf4j Logback

    Spring Boot SLF4j重新登录文章链接: :

    gcloud-logging-slf4j-logback:用于sl4j + logback的gcloud-logging json日志附加程序

    用于sl4j + logback的gcloud-logging json日志附加程序 ... compile ' com.github.ankurcha:google-cloud-logging-logback-slf4j:LATEST ' } 或Maven pom.xml : &lt; groupId&gt;com.github.ankurcha&lt;/ group

    java版ss源码-tomcat-slf4j-logback:Tomcat、SLF4J和Logback集成发布

    slf4j/logback 库。 模块项目 这是 Tomcat Slf4j Logback 项目的发布存储库。 请参阅顶级项目以访问特定存储库。 登录通知 从 logback 1.1.7 开始,不再需要在 server.xml 中包含${catalina.home}以进行 logback-...

    CalendarClient:dioCalendar 的客户端。 研究日志框架(log4j、slf4j、logback)+Maven和常用接口

    日历客户端 dioCalendar 项目的客户端。 研究日志框架(log4j、slf4j、logback)+Maven和通用接口... 包含从 log4j -&gt; log4j 和 log4j -&gt; slf4j -&gt; logback 方案进行日志记录的 SimpleLogging 和 NewLogging 两个模块。

    slf4j-api-1.7.2.jar

    Simple Logging Facade for Java (SLF4J) The Simple Logging ...Java的简单日志外观(SLF4J)作为各种日志框架(例如JavaUTIL日志记录、LogCub、Log4J)的简单外观或抽象,允许终端用户在部署时插入所需的日志框架。

    zio-slf4j:slf4j的参照透明日志记录

    齐奥-slf4j slf4j的参照透明日志记录不要忘记在类路径中包含slf4j-api的实现(例如logback)。 libraryDependencies += "com.nequissimus" %% "zio-slf4j" % "0.4.1"用法有关简单的用法示例,请参见 。Scala兹zio-...

    Logback配置文件根据 LEVEL级别将日志分类保存到不同文件.docx

    SpringBoot工程自带logback和slf4j的依赖,所以重点放在编写配置文件上,需要引入什么依赖,日志依赖冲突统统都不需要我们管了。 logback框架会默认加载classpath下命名为logback-spring.xml或logback.xml的配置文件...

    SpringBoot Logback日志记录到数据库的实现方法

    主要介绍了SpringBoot Logback日志记录到数据库的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    logback日志记录写入kafka

    使用slf4j配置kafkaAppender写入日志到kafka列队 支持日志解析+过滤等扩展接口

    logging-examples:演示基本SLF4J和Logback用例的示例项目

    日志记录示例演示基本SLF4J和Logback用例的示例项目先决条件要运行,请安装Docker,然后运行src/test/resources/run-docker.sh (或Windows上的.bat )。要停止Postgres数据库,请运行docker kill logging-test-...

    Logback手册中文版

    logback手册中文版,原创翻译。java世界日志记录新组合:sflj4j+logback,忘记log4j吧,忘记common-logging吧。

    liquibase-slf4j:Liquibase SLF4J记录仪

    直接委托给SLF4J的Liquibase记录器的实现。 Liquibase有一个委托给java.util.logging的日志记录机制。 如果您使用jul-to-slf4j库,它就可以很好地与SLF4J配合使用。 不幸的是,将java.util.logging桥接到SLF4J已知...

    springboot 日志配置文件 logback

    logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。 logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能。 ...

    slf4j:Java的简单日志记录外观

    Java的简单日志记录外观(SLF4J)充当各种日志记录框架(例如java.util.logging,logback,log4j)的简单外观或抽象,允许最终用户在部署时插入所需的日志记录框架。 可以在上找到更多信息。 建置状态 如何建立SLF4...

    spring-log:对 slf4j 和 logback 的额外 Spring 支持

    弹簧日志 1.0.4做什么的? spring-log 为 Spring 项目提供了额外的和支持: 记录器自动注入webapp、独立和测试环境中的自定义配置请参阅。二进制文件在哪里? 从 1.0.4 开始,您可以在 maven central 中找到二进制...

    Logback所需的jar包

    logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。() logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能。...

    url-shortener:URL 缩短器 Web 应用程序

    网址缩短服务 ...日志记录 slf4j + logback / log4j 简介 ================ 实现 REST 服务,提供 URL 缩短/扩展功能,如 bit.ly 功能要求 REST接口 GET /shorten Shorten specified URL. Parameters: url:

    lambda-monitoring:AWS Lambda的日志和指标库

    λ监控 Java / JVM 的日志记录和指标库的集合。 背景阅读: 使用SLF4J + Logback对Lambdas进行现代日志记录。 Lambda的可记录Codahale指标。 注释驱动的自动Cloudwatch指标筛选器。

Global site tag (gtag.js) - Google Analytics