spring配置日志
原文:http://blog.csdn.net/xiejx618/article/details/41698913
参考:http://spring.io/blog/2009/12/04/logging-dependencies-in-spring
spring默认使用了commons-logging,在集成其它日志框架,slf4j使用了编译时绑定来代替运行时发现.它注定是更高效的(当然slf4j还可以使用占位符绑定等功能).下文介绍spring三种常用方案记录日志,推荐第三种
方案一:commons-logging+Log4J
1.依赖:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
2.在classpath根目录添加log4j.properties或log4j.xml,关于开发的日志级别配置,调得太高,会漏到一些信息看不见,调得太低,输出得太多,看得眼花缭乱,在产品阶段甚至影响应用性能.我觉得开发时,默认(一般依赖也是用默认appender)给WARN,项目本身编写的代码可以给DEBUG,其它另外特别指定,以下是log4j.properties的一个例子:
log4j.rootCategory=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n log4j.category.org.exam=DEBUG log4j.category.org.springframework.beans.factory=INFO
根据log4j API(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Category.html),Category已经过时,应使用Logger代替.而Logger是Category的子类,在Category的所有操作都可以在Logger上执行.以上的properties文件内容应改为
log4j.rootLogger=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n log4j.logger.org.exam=DEBUG log4j.logger.org.springframework.beans.factory=INFO
3.代码用法:
import org.apache.log4j.Logger; public class UserService { final Logger logger = Logger.getLogger(UserService.class); public boolean save(){ logger.error("虽然A喜欢我,但是我喜欢B"); return true; } }
方案二:slf4j+Log4J
1.先在spring排除commons-logging.再引入4个包:桥接包jcl-over-slf4j,SLF4J API包slf4j-api,绑定到Log4J的包slf4j-log4j12,Log4J实现包log4j12.
<dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency>
2.log4j配置同上.
3.代码用法:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class UserService { final Logger logger = LoggerFactory.getLogger(UserService.class); public boolean save(){ logger.error("虽然{}喜欢我,但是我喜欢{}","A","B"); return true; } }
方案三:slf4j+logback.其中,logback是slf4j原生的实现.
1.先引入logback-classic依赖,它会将其它依赖引入,再在spring排除commons-logging.
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency>
2.logback配置:查找顺序logback.groovy-->logback-test.xml-->logback.xml,详细配置还是参考文档http://logback.qos.ch/documentation.html.下面是logback.xml例子
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yy.MM.dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <logger name="org.exam" level="debug" /> <logger name="org.springframework.beans.factory" level="info" /> <root level="warn"> <appender-ref ref="console"/> </root> </configuration>
转载于:https://www.cnblogs.com/But-you/p/9722382.html
spring配置日志相关推荐
- 使用Spring配置LogBack日志记录
LogBack是由Log4j的同一作者创建的用于记录日志的API(较新的实现,它类似于新版本),在本文中,我将展示如何在Spring项目中对其进行集成和使用. 在本教程中,我假设您正在使用一个简单的S ...
- SpringBoot ——Spring Boot日志配置
Spring Boot 采用了 slf4j+logback 的组合形式,Spring Boot也提供对JUL.log4j2.Logback提供了默认配置 1.默认日志配置 修改日志默认级别 2.修改日 ...
- Spring Boot——日志配置
日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节.但是,这丝毫不影响它在任何一个系统中的重要的地位. 为了保证服务的高可用,发现问题一定要即使,解决问题一定要迅速,所以生 ...
- Spring Boot 日志配置 ——logback
一.logback默认的日志配置 Spring Boot 默认使用的日志框架是logback,如果我们没有自定义配置的话,logback将会使用他为默认的日志配置文件: classpath:logba ...
- ELK 处理 Spring Boot 日志,妙!
以下文章来源方志朋的博客,回复"666"获面试宝典 在排查线上异常的过程中,查询日志总是必不可缺的一部分.现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常 ...
- ELK 处理 Spring Boot 日志,有点强悍!
在排查线上异常的过程中,查询日志总是必不可缺的一部分.现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难.工欲善其事,必先利其器.如果此时有一个统一的实时日志分析平台,那可 ...
- 54. spring boot日志升级篇—logback【从零开始学Spring Boot】
在<44. Spring Boot日志记录SLF4J>章节中有关相关的介绍,这里我们在深入的了解下logback框架. 为什么要使用logback ? --在开发中不建议使用System. ...
- 让你的spring-boot应用日志随心所欲--spring boot日志深入分析
1.spring boot日志概述 spring boot使用Commons Logging作为内部的日志系统,并且给Java Util Logging,Log4J2以及Logback都提供了默认的配 ...
- Spring Boot日志集成
Spring Boot日志框架 Spring Boot支持Java Util Logging,Log4j2,Lockback作为日志框架,如果你使用starters启动器,Spring Boot将使用 ...
最新文章
- 国际顶级学术会议CIKM2019北京开幕在即,重量级嘉宾带你窥探人工智能前沿
- 3.21日 爬虫小计
- 实体服务与虚拟服务迎来数字化发展新契机 中关村助力首都全球数字经济标杆城市建设
- php ajax练习
- 递归法:杨辉三角,计算第m层的第n个系数
- 网站导航(自定义站点地图)
- Matlab PlotPub绘图工具箱
- AD转换及其相关背景知识
- 格式化输出编码问题!
- 【MQTT基础篇(一)】MQTT介绍
- 了解ESP32睡眠模式及其功耗
- mac删除分区并合并分区
- 锁屏状态下,看到歌手图片
- 洛谷 P1645 序列
- 微信健身房小程序开发源码设计方案
- OPPO Watch 2五大亮点加持 定位旗舰全智能手表
- 高精度数乘法进位c语言,C语言中的高精度乘法
- web前端 | 博客(二)登录功能
- Vanilla SGD
- ubuntu 清理缓存