SpringBoot学习(1) - 日志
package com.study.spring_boot_log; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.websocket.WebSocketAutoConfiguration;
import org.springframework.context.ConfigurableApplicationContext; import com.study.spring_boot_log.dao.UserDao;
import com.study.spring_boot_log.service.UserService;
@SpringBootApplication(exclude=WebSocketAutoConfiguration.class)
public class App {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(App.class,args);
context.getBean(UserDao.class).log();
System.out.println("===================");
context.getBean(UserService.class).log(); context.close();
}
}
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.study.springboot</groupId>
<artifactId>spring-boot-log</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging> <name>spring-boot-log</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.3.RELEASE</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project>
package com.study.spring_boot_log.dao; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; @Component
public class UserDao {
private Logger log = LoggerFactory.getLogger(UserDao.class);
public void log() {
log.debug("user dao debug log");
log.info("user dao info log");
log.warn("user dao warn log");
log.error("user dao error log");
}
}
package com.study.spring_boot_log.service; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; @Component
public class UserService {
private Logger log = LoggerFactory.getLogger(UserService.class);
public void log() {
log.debug("user service debug log");
log.info("user service info log");
log.warn("user service warn log");
log.error("user service error log");
}
}
springboot默认 的日志级别是info
可以通过logging.level.*=debug配置项设置,*可以是包,也可以是某个类。
也可以在Run Configurations中配置 --debug,或者SpringApplication.run(App.class,“--debug=true”)。这两种debug只会是springboot默认,自定义的类不会debug。
日志级别有:TRACE,DEBUG,INFO,WARN,ERROR,FATA,OFF
日志级别配置成OFF,表示关闭日志输出
logging.file 指定日志文件路径名字
logging.path 指定日志目录(此时的日志名字为spring.log)
日志文件输出,文件的大小10M之后,就会分割
logging.pattern.console 配置控制台输出日志的pattern
logging.file.console 配置日志文件输出日志的pattern
application.properties
logging.level.com.study.spring_boot_log.dao.UserDao=off
logging.level.com.study.spring_boot_log.service.UserService=DEBUG logging.file=D:/ivy/mylog
logging.path=D:/ivy/mylogs logging.pattern.console=%-20(%d{yyyy-MM-dd} [%thread]) %-5level %logger{80} - %msg%n
logging.file.console=%-20(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level %logger{80} - %msg%n
springboot 默认支持logback
也就是说,只需要在classpath下放一个logback.xml,logback-spring.xml的文件,即可定制日志的输出
logback-spring.xml或logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%-20(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level %logger{80} - %msg%n</pattern>
</layout>
</appender> <root level="debug">
<appender-ref ref="consoleLog" />
</root>
</configuration>
使用其他的日志组件的步骤:
1.排除默认的日志组件:spring-boot-starter-logging
2.加入新的日志路径依赖
3.把相应的配置文件放在classpath下
log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appenders>
<Console name="console" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="%d{yyyy-MM-dd} [%thread] %-5level %logger{80} - %msg%n"/>
</Console>
</appenders>
<loggers>
<root level="DEBUG">
<appender-ref ref="console"/>
</root>
</loggers>
</configuration>
SpringBoot学习(1) - 日志的更多相关文章
- 尚硅谷springboot学习17-SpringBoot日志
SpringBoot使用它来做日志功能: <dependency> <groupId>org.springframework.boot</groupId> < ...
- SpringBoot学习(三):日志
1.日志框架 小张:开发一个大型系统: 1.System.out.println(""):将关键数据打印在控制台:去掉?写在一个文件? 2.框架来记录系统的一些运行时信息: ...
- Springboot学习:日志
介绍 市面上的日志框架: JUL.JCL.Jboss-logging.logback.log4j.log4j2.slf4j.... 日志门面 (日志的抽象层) 日志实现 JCL(Jakarta Com ...
- SpringBoot学习笔记(13):日志框架
SpringBoot学习笔记(13):日志框架——SL4J 快速开始 说明 SpringBoot底层选用SLF4J和LogBack日志框架. SLF4J的使用 SpringBoot的底层依赖关系 1. ...
- SpringBoot学习- 9、Slf4j日志
SpringBoot学习足迹 在上一篇学习中 通过画红线的注解,可以直接在下面log.debug输出日志到控制台,但是写日志文件就没那么顺利了,一直不成功,找了N种配置,以下配置方法可行 首先确保已引 ...
- springboot学习4使用日志:logback
springboot学习4使用日志:logback 一.基本知识说明 SpringBoot默认使用logback作为日志框架 ,所以引入起步依赖后就可以直接使用logback,不需要其他依赖. Spr ...
- springboot学习入门简易版六---springboot2.0整合全局捕获异常及log4j日志(12-13)
使用Aop实现 1创建异常请求 在原有项目基础上,jspController中创建一个可能发生异常的请求: /** * 全局捕获异常测试 * @param i * @return */ @Reques ...
- SpringBoot学习笔记
SpringBoot个人感觉比SpringMVC还要好用的一个框架,很多注解配置可以非常灵活的在代码中运用起来: springBoot学习笔记: .一.aop: 新建一个类HttpAspect,类上添 ...
- SpringBoot学习历程
新年新气象,更新了一下本人所有写的关于SpringBoot的文章目录,感谢大家长期以来的支持,在接下来的日子还会不定期的进行更新. 入门 使用IntelliJ Idea新建SpringBoot项目 S ...
随机推荐
- 力扣142——环形链表 II
原题 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos ...
- JVM探秘:四种引用、对象的生存与死亡
本系列笔记主要基于<深入理解Java虚拟机:JVM高级特性与最佳实践 第2版>,是这本书的读书笔记. Java虚拟机的内存区域中,程序计数器.Java栈和本地方法栈是线程私有的,随线程而生 ...
- Java函数式接口与Lambda表达式
什么是函数式接口? 函数式接口是一种特殊的接口,接口中只有一个抽象方法. 函数式接口与Lambda表达式有什么关系? 当需要一个函数式接口的对象时,可以提供一个lambda表达式. package l ...
- spring 与mybatis 整合
步骤: pom文件添加依赖 创建包结构 添加application.yml, 配置数据库信息 使用mybatis-gennerator 生成三个文件 实体类 接口类 xml 文件 错误信息 xml 绑 ...
- FTP服务器虚拟用户配置
FTP服务配置问题及解决方案 使用被动模式,设置云主机IP为被动模式数据传输地址:在配置文件内添加 pasv_enable=YES pasv_promiscuous=YES pasv_address= ...
- ASP.NET Core 启用跨域请求
本文翻译整理自:https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-3.1 一 .Cross-Orig ...
- 关于Scrum+XP+DevOps的学习
最近听了ECUG大会上孙敬云老师的分享感觉受益匪浅,毕竟大学课本上只讲到瀑布模型就没有下文了,工作以后一直贯彻的都是Scrum路线,一直也没有时间好好的去学习整理这部分的知识,直到近几天听到了孙老师的 ...
- Shell脚本实现DB2数据库表导出到文件
该Shell脚本用于实现将DB2数据库表导出到文件,将在另一篇博文<Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件>中通过Java代码实现调用该脚本并传入参数. #! ...
- javascript 实现中文按照拼音首字母排序
js提供了sort()方法来对数组内的数据进行排序,但是只是对英文有作用,这个时候需要自定义排序的规则 ['张三','李四','王五'].sort((a, b) => a.localeCompa ...
- cogs 1963. [HAOI 2015] 树上操作 树链剖分+线段树
1963. [HAOI 2015] 树上操作 ★★★☆ 输入文件:haoi2015_t2.in 输出文件:haoi2015_t2.out 简单对比时间限制:1 s 内存限制:256 M ...