Logback 将日志分级别打印
最近项目中用到了logback 记录日志, 关于为啥使用logback 请百度一下: logback与Log4J的区别
- 更快,容量更小
- 充分的测试
- logback-class 非常自然的实现了slf4J 接口
- 充分的文档介绍
- 自动重新加载配置文件(如果配置文件修改了)
- 谨慎的模式和非常友好的恢复
- Filters(过滤器)结合MDC 使用
- SiftingAppender 结合MDC使用
- 自动压缩日志机制
- 自动打印堆栈数中包的数据
- 自动轮换日志以及清除日志
好了,废话不多说,直奔主题, 研究了好久,终于将日志按级别将日志分文件打印出来了, 具体步骤如下:
1. 下载对于的JAR 包:
http://logback.qos.ch/
logback-access-1.1.2.jar
logback-classic-1.1.2.jar
logback-core-1.1.2.jar
http://www.slf4j.org/
slf4j-api-1.7.10.jar
mvaven , 配置如下:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
!!!如果是Springboot,则只需要包含下面这个即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
2. 创建一个web project, 写一个简单的JAVA class 或者Servlet.
public class ILoveYou{
private final static Logger log = LoggerFactory.getLogger(ILoveYou.class);
public static void main(String[] arg){
if(logger.isDebugEnabled()){
logger.debug("debug::"+JSON.toJSONString(user));
}
if(logger.isTraceEnabled()){
logger.trace("trace::"+JSON.toJSONString(user));
}
log.info("=====================33333333info333333333====================");
log.warn(" =====================warn=444444444444===================");
log.error(" =====================error====55555555555================");
}
}
4. 将第一步所下载的jar包导入, 并运行, 控制台打印出如下信息
==111111111=======trace ===================
============22222===debug2222222====================
=====================33333333info333333333====================
=====================warn=444444444444===================
=====================error====55555555555================
5. 建立日志配置文件: logback.xml (或者logback-test.xml)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 定义log 文件的 home 目录 -->
<property name="LOG_HOME" value="C:/Users/Administrator/Desktop/logs"></property> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- %.-1level 只显示信息级别的首字母,%-5level 左对齐显示信息级别全称 --> <Pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] --%mdc{client} %msg%n</Pattern>
</encoder>
</appender> <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoding>UTF-8</encoding>
<file>${LOG_HOME}/trace.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/trace.%d{yyyy-MM-dd}.log</FileNamePattern>
</rollingPolicy>
<layout>
<pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
</layout>
<!-- <filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>TRACE</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter> -->
</appender> <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoding>UTF-8</encoding>
<file>${LOG_HOME}/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/info.%d{yyyy-MM-dd}.log</FileNamePattern>
</rollingPolicy>
<layout>
<pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender> <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoding>UTF-8</encoding>
<file>${LOG_HOME}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/debug.%d{yyyy-MM-dd}.log</FileNamePattern>
</rollingPolicy>
<layout>
<pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender> <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoding>UTF-8</encoding>
<file>${LOG_HOME}/warn.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/warn.%d{yyyy-MM-dd}.log</FileNamePattern>
</rollingPolicy>
<layout>
<pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender> <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoding>UTF-8</encoding>
<file>${LOG_HOME}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/error.%d{yyyy-MM-dd}.log</FileNamePattern>
</rollingPolicy>
<layout>
<pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender> <!-- <logger name="com.mchange" level="INFO"/>
<logger name="org.springframework" level="WARN"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.ResultSet" level="INFO"/>
<logger name="com.boaotech.util" level="DEBUG"/> --> <root level="TRACE">
<appender-ref ref="STDOUT"/>
<appender-ref ref="TRACE_FILE" />
<appender-ref ref="INFO_FILE" />
<appender-ref ref="DEBUG_FILE" />
<appender-ref ref="WARN_FILE" />
<appender-ref ref="ERROR_FILE" />
</root> </configuration>
6. 将logback.xml 放置到web工程的classes目路下,运行项目,看你的桌面,是否有如下日志文件:

分别记录上面trace, info, debug, warn, error 的日志。
日志需要系统的学习一下,你到官网学习!
Logback 将日志分级别打印的更多相关文章
- log4j分级别打印和如何配置多个Logger
log4j.rootLogger=dubug,info,warn,error 最关键的是log4j.appender.[level].threshold=[level] 这个是日志分级别打印的最关 ...
- Spring Boot-Logback 配置(区分环境、分包、分级别打印)
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!--生产环境 - ...
- log4j日志分模块打印,同时不打印到控制台上
由于定时刷新程序的启用,导致catalina.out配置文件中打入大量日志,致使程序调试困难. 无法正常查看日志.所以客户要求将性能流量配置日志迁移出catalina.out目录.修 ...
- 涨姿势:Java 分业务、分级别实现自定义日志打印
自定义日志级别 通常的日志框架都有以下几个级别,从低到高TRACE,DEBUG,INFO,WARN,ERROR,FATAL. 默认情况,假如我们定义日志打印级别INFO,它会把大于等于INFO级别的日 ...
- SpringBoot+logback实现日志打印
logback介绍 logback是一款开源的日志框架,内核重写了,是基于log4j基础进行改良的.其官网为logback.qos.ch.logback在性能上有很大提升,拥有更多特性. logbac ...
- SpringBoot系列之集成logback实现日志打印(篇二)
SpringBoot系列之集成logback实现日志打印(篇二) 基于上篇博客SpringBoot系列之集成logback实现日志打印(篇一)之后,再写一篇博客进行补充 logback是一款开源的日志 ...
- SpringBoot使用logback输出日志并打印sql信息 --经典---
最近在学习springboot以及一些springcloud插件的使用,其中发现默认的配置并不能打印一些有用的日志,所以需要自定义一些日志输出方式以便于查看日志排查问题,目前只整理了两种使用方式,如下 ...
- 【Logback日志级别】动态调整Logback的日志级别
一.导入 Logback作为目前一个比较流行的日志框架,我们在实际项目经常使用到该框架来帮助我们打印日志,以便我们可以更快速地获取业务逻辑执行情况.定位系统问题. 常用的日志打印一共有5种级别控制,优 ...
- SLF4J其实只是一个门面服务而已,他并不是真正的日志框架,真正的日志的输出相关的实现还是要依赖Log4j、logback等日志框架的。
小结: 1.加层: 每一种日志框架都有自己单独的API,要使用对应的框架就要使用其对应的API,这就大大的增加应用程序代码对于日志框架的耦合性. 为了解决这个问题,就是在日志框架和应用程序之间架设一个 ...
随机推荐
- WebSocket实时异步通信
WebSocket实时异步通信 [一]WebSocket简介 WebSocket是HTML5推出一个协议规范,用来B/S模式中服务器端和客户端之间进行实时异步通信. 众所周知,传统的HTTP协议中,服 ...
- CentOS 6.4安装搭建Tomcat 7
1.检查java版本信息 java -versionjava version "1.7.0_65"OpenJDK Runtime Environment (rhel-2.5.1.2 ...
- myeclipse使用太卡问题
最近写html文件,修改内容时,就会反应好长时间,太卡. 原因:没修改一次,它就会自动校验. 解决方法:window——preferences——Editors——Text Editors ——spe ...
- Python 基础【第五篇】元组和列表
一 .Python之列表: 其实所谓的列表我个人感觉和shell 中的数组是一样的(只是个人见解哦),列表其实说白了就是元素的组合: 格式: Name = [a,b,c,d] 下标: 每一个列表中的元 ...
- javascript数据结构和算法[转]
字符串表示的数组 join() 和 toString() 函数返回数组的字符串表示.这两个函数通过将数组中的元素用逗号分隔符分割,返回字符串数组表示. 这里有个例子: var names = [&qu ...
- LeetCode里有特色的问题存档
002* Median of Two Sorted Arrays There are two sorted arrays A and B of size m and n respectively. F ...
- 使用AndroidScreenSlidePager开源库
一.下载地址 https://github.com/LyndonChin/AndroidScreenSlidePager 点击右侧的Download ZIp按钮进行下载.然后解压缩到本地. 二.使用方 ...
- yii2 ./yii command : No such file or directory
git clone下来的yii2后台项目,由于需要执行 ./yii migrate命令.执行之后,提示 No such file or directory 我从同样为yii2 basic的./yii ...
- JAXB - The Object Factory
Usually hidden in the middle of the list of the classes derived from the types defined in an XML sch ...
- ASP多行多列又一个方法
<table border=1 width="200"> <% col=4 '列数 i=1 Do While i<=100 If i Mod col=1 T ...