关键词:
最近在自己搭建项目的时候,遇到logback选的问题,现在记录如下
在框架中使用logback日志框架,关于logback和log4j日志框架的选择,这里就不多说了网上百度一大堆,总之一句话 logback要比log4j效率高,性能好,配置灵活。
1.首先在maven中增加依赖
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>$logback.version</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>$jcl-over.version</version> </dependency>
定义各自版本
<logback.version>1.1.11</logback.version> <jcl-over.version>1.7.12</jcl-over.version>
因为采用的是maven聚合项目,所以这里 parent项目和common项目都需要加上,但是只需要给parent项目添加版本管理就行了
2.web.xml配置
<!--加载logback.xml配置文件--> <context-param> <param-name>logbackConfigLocation</param-name> <param-value>classpath:properties/logback.xml</param-value> </context-param> <listener> <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class> </listener>
3.编写logback.xml
在线工具,可以将log4j的properties文件直接转换成logback的xml文件,地址如下:
http://logback.qos.ch/translator/
logback的详细用法及其xml文件的相关语法,可参见它的用户向导,地址如下:
http://logback.qos.ch/manual/introduction.html
具体配置可以如下:(转自http://www.mkyong.com/logging/logback-xml-example/)更加具体的配置可以参考 文档 https://logback.qos.ch/manual/configuration.html
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd" debug="false" scan="true" scanPeriod="30 second"> <property name="PROJECT" value="app-demo" /> <property name="ROOT" value="$catalina.base/logs/$PROJECT/" /> <property name="FILESIZE" value="50MB" /> <property name="MAXHISTORY" value="100" /> <timestamp key="DATETIME" datePattern="yyyy-MM-dd HH:mm:ss" /> <!-- 控制台打印 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>[%-5level] %d$DATETIME [%thread] %logger36 - %m%n</pattern> </encoder> </appender> <!-- ERROR 输入到文件,按日期和文件大小 --> <appender name="ERROR-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>[%-5level] %d$DATETIME [%thread] %logger36 - %m%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>$ROOT%d/error.%i.log</fileNamePattern> <maxHistory>$MAXHISTORY</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>$FILESIZE</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <!-- WARN 输入到文件,按日期和文件大小 --> <appender name="WARN-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>[%-5level] %d$DATETIME [%thread] %logger36 - %m%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>$ROOT%d/warn.%i.log</fileNamePattern> <maxHistory>$MAXHISTORY</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>$FILESIZE</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <!-- INFO 输入到文件,按日期和文件大小 --> <appender name="INFO-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>[%-5level] %d$DATETIME [%thread] %logger36 - %m%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>$ROOT%d/info.%i.log</fileNamePattern> <maxHistory>$MAXHISTORY</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>$FILESIZE</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <!-- DEBUG 输入到文件,按日期和文件大小 --> <appender name="DEBUG-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>[%-5level] %d$DATETIME [%thread] %logger36 - %m%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>$ROOT%d/debug.%i.log</fileNamePattern> <maxHistory>$MAXHISTORY</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>$FILESIZE</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <!-- TRACE 输入到文件,按日期和文件大小 --> <appender name="TRACE-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>[%-5level] %d$DATETIME [%thread] %logger36 - %m%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>TRACE</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>$ROOT%d/trace.%i.log</fileNamePattern> <maxHistory>$MAXHISTORY</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>$FILESIZE</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <!-- Logger 根目录 --> <root level="DEBUG"> <appender-ref ref="STDOUT" /> <appender-ref ref="ERROR-OUT" /> <appender-ref ref="WARN-OUT" /> <appender-ref ref="INFO-OUT" /> <appender-ref ref="DEBUG-OUT" /> <appender-ref ref="TRACE-OUT" /> </root> </configuration>
启动项目,效果如下:
在百度资料的时候发现 控制台还可以给不同的日志级别有不同的颜色,好吧,原谅我的无知。插件名:grep-console
测试结果如下:
slf4j和logback日志框架详解(代码片段)
SLF4J和Logback日志框架详解作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs本文讲述SLF4J和Logback日志框架。 SLF4J是一套简单的日志外观模式的JavaAPI,帮助在项目部署时对接各种日志实现。LogBack在运行时... 查看详情
日志框架之logback的使用与详细配置(代码片段)
(日志框架之Logback的使用与详细配置)Logback概述Logback特点:高性能:采用异步日志机制,可以将日志操作和业务逻辑分离,从而大幅度提升系统的性能。灵活的配置:支持多种不同的配置方式,包括基于XML、Groovy、JSON等格式的配... 查看详情
logback-defender实现日志脱敏(代码片段)
Gitee地址https://gitee.com/JustryDeng/logback-defenderlogback-defender介绍 logback-defender是一款基于logback实现的无侵入的日志脱敏工具框架,使用此框架,只需要简单的三步。功能特性(默认提供)支持json脱敏器(默认提供)支持string脱... 查看详情
springbootlogback配置详解(代码片段)
一.了解简单地说,Logback是一个Java领域的日志框架。它被认为是Log4J的继承人。Logback主要由三个模块组成:logback-corelogback-classiclogback-accesslogback-core是其它模块的基础设施,其它模块基于它构建,显然,logback-core提供了一些关键... 查看详情
利用springboot+logback手写一个简单的链路追踪(代码片段)
...一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简单的链路追踪,下面详细介绍下。一、实现原理SpringBoot默认使用LogBack日志系统,并且已经引入了相关的jar包,所以我们无需任何配置便可以使用LogBack打... 查看详情
springbootlogback日志组件使用(代码片段)
一logback简介 Logback是一个开源日志组件。Logback一般和SLF4结合起来使用。外层使用SLF4J,里面的实现是logback。什么意思,简单来说我们使用层看到的是SLF4J。我们使用的时候就是和SLF4J提供的一些api打交道。 我们可能... 查看详情
logback的简单使用(代码片段)
logback的使用logback是由log4j的创始人设计的另一个开源日志组件,性能比log4j好LogBack主要分为三个模块:logback-core:其他两个模块的基础模块logback-class:它是log4j的改良版本,完整实现了Slf4jAPIlogback-access:访问模块与... 查看详情
日志框架--logback(代码片段)
logback背景介绍:SLF4J(SimpleLoggingFacadeforJava)是一个日志API接口,SLF4J提供TRACE,DEBUG,INFO,WARN,ERROR五种级别,而log4j和logback就是对SLF4J的具体实现。logback的性能优于log4j。logback-core:其它两个模块的基础模块logback-classic:它是log4j的一... 查看详情
为什么要用日志框架logback基本使用(代码片段)
...ontext比如HelloWorld.class这个携带包名【选择日志框架】SLF4JLOGBACK原作者推荐,Log4j2性能最好但其他框架支持比较少。(淘汰JCLJULJBOSS_LOGLog4j)………………………………………………………………… 查看详情
slfj4+logback(代码片段)
...再代码中或配置文件中指定使用的那个具体的日志系统。logback:是由log4j创始人设计的一个开源日志组件。logback当前分成三个模块:logback-core,logback-classic和logback-access。l 查看详情
springboot使用日志(代码片段)
...日志门面日志实现JCL、SLF4J、jboss-loggingLog4j、JUL、Log4j2、Logback日志门面:SLF4J日志实现:LogbackSpringBoot:底层是Spring框架,Spring框架默认是用JCL;SpringBoot选用SLF4J和Logback.2、SLF4J使用以后开发的时候,日志记录。日志记录方法的调... 查看详情
logback的简单使用(代码片段)
logback的使用logback是由log4j的创始人设计的另一个开源日志组件,性能比log4j好LogBack主要分为三个模块:logback-core:其他两个模块的基础模块logback-class:它是log4j的改良版本,完整实现了Slf4jAPIlogback-access:访问模块与... 查看详情
springboot整合+logback日志配置(代码片段)
本次演示的代码结构如下,基于maven,整合SpringBoot、Spring、Mybaits的SSM框架。同时测试logback日志框架的使用及配置。1.创建maven工程,修改pom.xml文件<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi= 查看详情
logback,slf4j,log4j2。了解它们并学习如何使用。(翻译)(代码片段)
...此已经编写了各种框架。一些Java日志记录框架包括Log4j,logback,Apache通用日志记录,java.util.Logger等。所有这些日志记录器都将日志记录到文件或其他指定的介质中。什么是SLF4JSLF4j代表Java的简单日志记录外观。顾名思义,它是... 查看详情
logback使用
logback简介 Slf4j是TheSimpleLoggingFacadeforJava的简称,是一个简单日志门面抽象框架,它本身只提供了日志FacadeAPI和一个简单的日志类实现,一般常配合Log4j,LogBack,java.util.logging使用。Slf4j作为应用层的Log接入时,程序可... 查看详情
java#在项目中使用slf4j+logback来记录日志(代码片段)
...ACE有关系统流程的更多详细信息SLF4J和Log4j的关系:1.2Logback概述Logback分为三个不同的模块,logback-core(核心代码模块),logback-classic(log4j的一个改良版本,同时实现了slf4j的接口,这样如果之后要... 查看详情
springspringboot配置logback日志(代码片段)
...线上问题。常用的日志框架有好几种,但最常用的是logback、log4j等。本文主要讲解logback日志框架的配置,后面再介绍log4j日志框架的配置。 2 查看详情
日志门面框架slf4j(代码片段)
...供接口,具体的实现可以交由其他日志框架,例如log4j和logback等。当然slf4j自己也提供了功能较为简单的实现,但是一般很少用到。对于一般的Java项目而言,日志框架会选择slf4j-api作为门面,配上具体的实现框架(log4j、logback等... 查看详情