springboot通过slf4j配置日志
原因:SpringBoot默认使用slf4j日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉;
而我今天想引入log4j的时候,pom文件一直报错,显示找不到log4j的jar包,应当是2.0.3的springboot版本的原因;
在此就没再继续引入,而是采用了SpringBoot使用的slf4j的日志,有机会的话再测一下log4j和slf4j两种日志的效率对比。
一、application.yml中配置日志打印级别,默认是info(也可选择不同目录):
#slf4j日志配置
logging:
# 配置级别
level:
#分包配置级别,即不同的目录下可以使用不同的级别
com.sblueice.controller: debug
二、logback.xml中所有配置:
配置打印文件的路径(一天一个,保存30天):
<!-- 开发、测试环境 -->
<springProfile name="dev,test">
<!-- 定义日志存储的路径,不要配置相对路径 -->
<property name="FILE_PATH" value="E:/temp0918/SpringBoot-log/cccf.%d{yyyy-MM-dd}.%i.log" />
</springProfile> 配置打印sql日志:
<logger name="com.sblueice.mapper.UserMapper" level="DEBUG" />
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN"
value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /> <!-- 开发、测试环境 -->
<springProfile name="dev,test">
<!-- 定义日志存储的路径,不要配置相对路径 -->
<property name="FILE_PATH" value="E:/temp0918/SpringBoot-log/cccf.%d{yyyy-MM-dd}.%i.log" />
</springProfile> <!-- 生產環境 -->
<springProfile name="pro">
<!-- 定义日志存储的路径,不要配置相对路径 -->
<property name="FILE_PATH" value="/user/lib/cccf/logs/cccf.%d{yyyy-MM-dd}.%i.log" />
</springProfile> <!-- 控制台输出日志 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 按照上面配置的LOG_PATTERN来打印日志 -->
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender> <!--每天生成一个日志文件,保存30天的日志文件。rollingFile是用来切分文件的 -->
<appender name="rollingFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>
${FILE_PATH}
</fileNamePattern>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 日志文件的最大大小 -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy> <encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- project default level -->
<logger name="com.hiynn.cccf" level="INFO" /> <!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="console" />
<appender-ref ref="rollingFile" />
</root> <!--myibatis log configure-->
<logger name="com.sblueice.mapper.UserMapper" level="DEBUG" />
</configuration>
三、controller层输出打印日志(Java怎么没有着色。。。。)
package com.sblueice.controller; import java.util.List; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.sblueice.services.UserService; /**
*
* @author shaoz
* @Date: 2019/10/09
*
*/ @Controller
public class UserController { Logger logger = LoggerFactory.getLogger(getClass()); /**
*
* @Title: testLog
* @Description: TODO(测试springboot自带的日志打印)
* @param: @return
* @return: String
* @throws
*/
@RequestMapping("/testLog")
@ResponseBody
public String testLog() { // 级别由低到高 trace<debug<info<warn<error
logger.trace("这是一个trace日志...");
logger.debug("这是一个debug日志...");
// SpringBoot默认是info级别,只会输出info及以上级别的日志
logger.info("这是一个info日志...");
logger.warn("这是一个warn日志...");
logger.error("这是一个error日志...");
String str = "https://www.cnblogs.com/steveshao/";
logger.info("======欢迎访问无脚鸟的博客:{}\n", str); return null;
} }
以上就是今天SpringBoot打印日志的过程,也借鉴了好多人的东西,目前找不到借鉴的链接了,如果有同学觉得我摘抄了您的原文,请联系我给您添加上原文链接哈。
springboot通过slf4j配置日志的更多相关文章
- SpringBoot整合Slf4j+logback日志框架
一.Slf4j简单介绍与优势 1.介绍 Slf4j的全称是Simple Loging Facade For Java(Java简单日志门面),它仅仅是一个为Java程序提供日志输出的统一接口,并不是一 ...
- SpringBoot优雅地配置日志
本文主要给大家介绍SpringBoot中如何通过sl4j日志组件优雅地记录日志.其实,我们入门 JAVA 的第一行代码就是一行日志,那你现在还在使用System.out.println("H ...
- SpringBoot(三) - Slf4j+logback 日志,异步请求,定时任务
1.Slf4j+logback 日志 SpringBoot框架的默认日志实现:slf4j + logback: 默认日志级别:info,对应了实际生产环境日志级别: 1.1 日志级别 # 常见的日志框 ...
- springboot下slf4j配置
我们在引用的时候直接写 private static final Logger logger = LoggerFactory.getLogger(XXXServiceImpl.class); log. ...
- JAVAEE——SpringBoot日志篇:日志框架SLF4j、日志配置、日志使用、切换日志框架
Spring Boot 日志篇 1.日志框架(故事引入) 小张:开发一个大型系统: 1.System.out.println(""):将关键数据打印在控制台:去掉?写在一个文件 ...
- 【2.0】使用默认日志slf4j配置
一.SpringBoot日志简介 SpringBoot使用Commons Logging进行所有内部日志记录,但底层日志实现保持开放状态.为Java Util Logging,Log4j2和Logba ...
- springboot(三)配置日志
github代码:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-serviceSLF ...
- 在android中配置 slf4j + log4j 日志记录框架
需求: 在项目开发中,需要记录 操作日志 .起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题. 实现: 考虑使用 slf4j + log4j ...
- SpringBoot整合log4j2进行日志配置及防坑指南
写在前面 最近项目经理要求将原先项目中的日志配置logBack,修改为log4j2,据说是log4j2性能更优于logback,具体快多少,网上有说快10多倍,看来还是很快的,于是新的一波挑战又开始了 ...
随机推荐
- java试题复盘——9月26日
5.在 JAVA 编程中, Java 编译器会将 Java 程序转换为(A) A. 字节码 B. 可执行代码 C. 机器代码 D. 以上都不对 解析: 编译器将Java源代码编译成字节码cla ...
- Java主线程在子线程执行完毕后再执行
一.join() Thread中的join()方法就是同步,它使得线程之间由并行执行变为串行执行. public class MyJoinTest { public static void main( ...
- HDU 1074 Doing Homework ——(状态压缩DP)
考虑到n只有15,那么状压DP即可. 题目要求说输出字典序最小的答案的顺序,又考虑到题目给出的字符串本身字典序是递增的,那么枚举i的时候倒着来即可.因为在同样完成的情况下,后选字典序大的,小的字典序就 ...
- C语言中内存对齐规则讨论(struct)
C语言中内存对齐规则讨论(struct) 对齐: 现代计算机中内存空间都是按着byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地 ...
- Python语法 - 生成器
生成器基本概念 1 生成器不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,直到遇到StopIteration异常结束 2 生成器表达式能做的事情列表解析基本都能处理,只不 ...
- 走进JavaWeb技术世界开篇:JavaWeb技术汇总
微信公众号[Java技术江湖]一位阿里 Java 工程师的技术小站.(关注公众号后回复”Java“即可领取 Java基础.进阶.项目和架构师等免费学习资料,更有数据库.分布式.微服务等热门技术学习视频 ...
- vgg16 感受野计算
code: vgg_16 = [ [3, 1], [3, 1], [2, 2], [3, 1], [3, 1], [2, 2], [3, 1], [3, 1], [3, 1], [2, 2], [3, ...
- idea内存不足或过大闪退
昨天在码云找了个开源后台项目https://gitee.com/shuzheng/zheng,各种修改后终于跑起来了, 运行没多久就提示内存不足,安装目录配置虚拟机最大可用内存为512M idea弹窗 ...
- 外部连接mysql docker容器异常
为了方便,使用python测试连接mysql容器 脚本内容非常简单 #!/usr/bin/python3 import pymysql conn=pymysql.connect(host=,passw ...
- SOCKET原理(转载)
SOCKET原理 一.套接字(socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息: ...