logback配置

logback快速入门

二次信任 提交于 2020-03-03 02:15:10
一、slf4j The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks, such as java.util.logging, logback and log4j. SLF4J allows the end-user to plug in the desired logging framework at deployment time. 简单日志门面(SLF4J)为各种日志框架提供了一个简单的接口,使得用户能够在部署的时候配置其所希望的日志系统。 在实际的开发过程中,可能会使用各种不同的日志系统,每个日志系统的风格、样式和布局也不尽相同,在不同日志系统之间进行切换耗时耗力。使用slf4j无需考虑具体使用哪个日志系统,统一使用slf4j的API进行开发。当要在不同日志系统之间进行切换时,只需要选择对应的日志系统包即可,十分灵活方便(当然,日志系统本身的jar包和配置文件还是需要的)。还有一点好处是,slf4j能够支持多个参数,并且通过{}占位符进行替换,避免了各种各样的判断条件,从而提升了性能。 到官网下载最新版本的slf4j,解压缩。slf4j-api-version.jar是slf4j的核心jar包。除此之外

从Log4j迁移到LogBack的理由

荒凉一梦 提交于 2020-03-02 06:24:48
无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进。不过尽管难以一一细数,这里还是列举部分理由为什么选择logback而不是log4j。牢记logback与log4j在概念上面是很相似的,它们都是有同一群开发者建立。所以如果你已经对log4j很熟悉,你也可以很快上手logback。如果你喜欢使用log4j,你也许会迷上使用logback。 更快的执行速度 基于我们先前在log4j上的工作,logback 重写了内部的实现,在某些特定的场景上面,甚至可以比之前的速度快上10倍。在保证logback的组件更加快速的同时,同时所需的内存更加少。 充分的测试 Logback 历经了几年,数不清小时数的测试。尽管log4j也是测试过的,但是Logback的测试更加充分,跟log4j不在同一个级别。我们认为,这正是人们选择Logback而不是log4j的最重要的原因。人们都希望即使在恶劣的条件下,你的日记框架依然稳定而可靠。 logback-classic 非常自然的实现了SLF4J logback-classic中的登陆类自然的实现了SLF4J。当你使用 logback-classic作为底层实现时,涉及到LF4J日记系统的问题你完全不需要考虑。更进一步来说,由于 logback-classic强烈建议使用SLF4J作为客户端日记系统实现

Java日志介绍(3)-Logback

别说谁变了你拦得住时间么 提交于 2020-02-28 11:32:03
Logback 继承自Log4j,它建立在有十年工业经验的日志系统之上。它比其它所有的日志系统更快并且更小,包含了许多独特并且有用的特性。 1、配置 1.1、加载配置 Logback能够在初始化期间自动查找配置文件进行配置;按照优先级查找配置文件直到找到,优先级如下: 1、查找系统属性logback.configurationFile对应的配置文件 2、在classpath下查找logback-test.xml 3、在classpath下查找logback.groovy 4、在classpath下查找logback.xml 5、通过JDK提供的ServiceLoader工具在类路径下寻找文件META-INFO/services/ch.qos.logback.classic.spi.Configurator,该文件的内容为实现了Configurator接口的实现类的全限定类名 6、如果以上都没有成功,logback会通过BasicConfigurator为自己进行配置,并且日志将会全部在控制台打印出来。 1.2、自动更新配置 在 <configuration> 标签上添加 scan=true 属性,可以让Logback自动定期扫描配置文件;默认一分钟扫描一次配置文件, <configuration> 标签上的 scanPeriod 属性可以指定扫描周期。扫描周期的时间单位可以是毫秒

spring boot—自定义日志配置

隐身守侯 提交于 2020-02-27 20:01:34
自定义日志配置 spring boot2.2.4官方文档 logback中文文档    1)spring boot可以适应所有日志框架,只需在类路径下包含相应的依赖来激活各种日志系统。    2)spring boot底层使用slf4j + logback框架来实现日志记录,所以如果想要自定义logback配置,就无需添加相关依赖了(spring-booot-stater中已包含相关依赖)    3)在类路径下放置自定义日志配置文件(xml配置文件),spring boot就不会使用它本身的默认日志配置了    4)上图是spring boot官方文档的提示内容,意思是:根据您的日志记录系统,将加载相应的文件使用。即如果我们使用logback日志框架,那么可以使用 logback-spring.xml 、 logback-spring.groovy 、 logback.xml 、 logback.groovy 之一作为配置文件来加载。    5)spring boot官方建议使用 logback-spring.xml 作为logback框架的日志配置文件(例如:使用 logback-spring.xml 而不是 logback.xml ),因为带 -spring 后缀的配置文件可以使用spring boot提供的一些高级功能,如profile多环境日志输出 <

logback日志的基本使用

蹲街弑〆低调 提交于 2020-02-27 04:45:18
logback的日志使用,有两种方式,可以在application.yml文件中配置,不过最常见的还是用一个单独的xml配置文件进行配置: 一、application.yml配置方式 logging: pattern: console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" file: "E:/360WiFi/warpper.log" 二、logback配置文件 在resource跟路径下新增logback.xml配置文件: <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME" value="D:/logback" /> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,

从Log4j迁移到LogBack的理由

北慕城南 提交于 2020-02-26 05:56:19
英文原文: Reasons to prefer logback over log4j 无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进。不过尽管难以一一细数,这里还是列举部分理由为什么选择logback而不是log4j。牢记logback与log4j在概念上面是很相似的,它们都是有同一群开发者建立。所以如果你已经对log4j很熟悉,你也可以很快上手logback。如果你喜欢使用log4j,你也许会迷上使用logback。 更快的执行速度 基于我们先前在log4j上的工作,logback 重写了内部的实现,在某些特定的场景上面,甚至可以比之前的速度快上10倍。在保证logback的组件更加快速的同时,同时所需的内存更加少。 充分的测试 Logback 历经了几年,数不清小时数的测试。尽管log4j也是测试过的,但是Logback的测试更加充分,跟log4j不在同一个级别。我们认为,这正是人们选择Logback而不是log4j的最重要的原因。人们都希望即使在恶劣的条件下,你的日记框架依然稳定而可靠。 logback-classic 非常自然的实现了SLF4J logback-classic中的登陆类自然的实现了SLF4J。当你使用 logback-classic作为底层实现时,涉及到LF4J日记系统的问题你完全不需要考虑。更进一步来说,由于 logback

java日志系统简介: 从tomcat大量打印debug日志说起

末鹿安然 提交于 2020-02-25 12:12:03
博客搬家至 https://lcy362.github.io/posts/4433/ 目前,java下应用最广泛的日志系统主要就是两个系列: log4j和slf4j+logback 。 其中,slf4j只包含日志的接口,logback只包括日志的具体实现,两者加起来才是一个完整的日志系统。Log4j则同时包含了日志接口和实现。 这两套日志系统之间有可以相互兼容的组件,分别是slf4j-log4j12和 log4j-over-slf4j,引入之后就可以用log4j打出slf4j接口的日志,或者用logback打出log4j接口的日志。 背景知识介绍到这里,再简单说一下标题里提到的问题。问题的现象就是我们在war包里配置了log4j的日志级别为info, 但在catalina里却一直在打大量的debug日志。初看现象肯定很诡异,前期各种研究tomcat配置也没什么头绪。直到磁盘压力太大,去看jstack发现大量进程是等待在Logback代码中,才发现之前关注错了重点。再去具体了解了java下的日志系统后,问题也就很明了了。 先把几个事实摆出来: 1. 打出的debug日志都是用slf4j写的,根据堆栈得知logback具体执行了日志打印 2. logback在无配置文件时默认debug级别 3. 我们的war包中同时包含logback,log4j和slf4j-log4j12 4.

logback配置

主宰稳场 提交于 2020-02-17 08:04:57
Logback 是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch。   它当前分为下面下个模块:   logback-core:其它两个模块的基础模块   logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging   logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能 1、 根节点<configuration>属性 scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 <configuration scan="true" scanPeriod="30 seconds"> <!-- 设置上下文名称 --> <contextName>${project.artifactId}</contextName> <!-- 设置变量 --> <property

LogBack日志配置

北城余情 提交于 2020-02-17 05:22:33
程序中记录日志一般有两个目的   1、故障定位   2、显示程序运行状态 logback的主要模块   1、logback-access:与server容器集成,提供通过http来访问日志的功能   2、logback-classic:是log4j的改良版本,完整的实现了slf4j api可以很方便的更换其他的日志系统   3、logback-core:为logback-access与logback-classic提供了基础的服务 logback的主要标签   1、logger:日志的记录器,主要用于存放日志对象,定义日志的类型、级别   2、appender:指定日志输出的目的地(控制台、文件、远程套接字服务器等)   3、layout:格式化日志信息的输出 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- 3 当scan为true时,配置文件发生改变,将会被重新加载,默认为true; 4 scanPeriod 设置 监测配置文件是否有修改时间的时间间隔,如果没有时间单位,默认时间单位为毫秒,当scan为true时,这个属性就生效; 5 debug 当该属性设置为true时,将会打印出logback内部的日志信息,实时查看logback的运行状态 6 --> 7 <configuration scan = "true"

logback 常用配置详解(二) <appender>

你说的曾经没有我的故事 提交于 2020-02-17 05:20:47
logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的组件。 <appender>有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。 1.ConsoleAppender: 把日志添加到控制台,有以下子节点: <encoder>:对日志进行格式化。(具体参数稍后讲解 ) <target>:字符串 System.out 或者 System.err ,默认 System.out ; 例如: Xml代码 <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="STDOUT" /> </root> </configuration> 2.FileAppender: 把日志添加到文件,有以下子节点: <file>:被写入的文件名