日志使用:
* 选一个门面(抽象层) 日志门面:SLF4j;
* 选一个实现; 日志实现:Logback;
springboot中使用的是 slf4j + logback
这是springboot中日志的依赖关系:
如果我们要引入其他框架,一定要把这个框架的默认日志依赖移除掉,用中间包来替换原有的日志框架
springboot中配置文件:application.yml
# trace<debug<info<warn<error
# logging.file
# 不指定路径在当前项目下生成springboot.Log日志
# 若指定路径则在指定位置生成日志文件
# logging.path
# 在指定的路径下生成springboot的日志文件
# 在当前磁盘的根路径下创建spring文件夹和里面的Log文件夹;使用spring.Log作为默认文件
# 在控制台的打印格式
# logging.pattern.console
# 在日志文件中的打印格式
# logging.pattern.file
# 日志输出格式:
# %d表示日期时间,
# %thread表示线程名,
# %-5leve1:级别从左显示5个字符宽度
# %logger{5e} 表示logger名字最长50个字符,否则按照句点分割
# %msg:日志消息
# %n是换行符
#
logging:
level:
root: info
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] --> %-5level %logger{5e} -%msg%n"
path: /spring/log
/** * Logging System Customization * Logback 1ogback-spring-xml,1ogback-spring.grooy,1ogback.xnl or1ogback.groovy * Log4j2 1og4j2-spring.xmlor 1og4j2.xml * JDKJavauUtil logging.properties Logging) * logback.xml:直接就被日志框架识别了; * logback-spring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置, * 可以使用SpringBoot的高级Profile功能 * * <springProfile name="dev"> * <!--configuration to be enabled when the"staging"profile is active--> * 可以指定某段配置只在某个环境下生效 * </springProfile> * */
public class Logs {
/**
* 选一个门面(抽象层) 日志门面:SLF4j;
* 选一个实现; 日志实现:Logback;
*/
/**
* 以后开发的时候,日志记录方法的调用,不应该未直接调用日志的实现类,
* 而是调用日志抽象层里面的方法;
* 给系统里面导入slf4j的jar和logback的实现jar
*/
/**
* 如何让系统中所有的日志都统一到slf4j;
* 1、将系统中其他日志框架先排除出去;
* 2、用中间包来替换原有的日志框架;
* 3、我们导入slf4j其他的实现
*/
/**
* 1)、SpringBoot底层也是使用slf4j+logback的方式进行日志记录
* 2)、SpringBoot也把其他的日志都替换成了slf4j;
*/
/**
* 4)、如果我们要引入其他框架,一定要把这个框架的默认日志依赖移除掉
* 用中间包来替换原有的日志框架
* Spring框架用的是commons-logging;
* <dependency>
* <groupId>org.springframework</groupId
* <artifactId>spring-core</artifactId>
* <exclusions>
* <exclusion>
* <!-- 如果要引用非官方的日志框架,要先排除官方日志框架 -->
* <groupId>commons-logging</groupId>
* <artifactId>commons-logging</artifactId>
* <exclusion>
* <exclusions>
* </dependency>
*
*/
/**
* 由低到高 trace<debug<info<warn<error
* 可以调整输出的日志级别;日志就只会在这个级别以以后的高级别生效
* springboot 中默认的日志级别为 info
*/
/**
* logging.level.com.atguigu=trace
* #Logging.path=
*
* #不指定路径在当前项目下生成springboot.Log日志
* #可以指定完整的路径;
*
* #Logging.file=G:/springboot.Log
* #在当前磁盘的根路径下创建spring文件夹和里面的Log文件夹;使用spring.Log作为默认文件logging.path=/spring/log
* #在控制台输出的日志的格式
*
* 1ogging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{5e} -%msg%n
* #指定文件中日志输出的格式
* logging.pattern.file=
*
* 日志输出格或
* #控制台输出的日志格式
* #%d:日期
* #%thread:线程号
* #%-5level:靠左 级别
* #%logger{50}:全类名50字符限制,否则按照句号分割
* #%msg:消息+换行
* #%n:换行
*/
/***
* # trace<debug<info<warn<error
* logging:
* level:
* root: info
* pattern:
* console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] --> %-5level %logger{5e} -%msg%n"
* file: /spring/log
*/
/**
* Logging System Customization
* Logback 1ogback-spring-xml,1ogback-spring.grooy,1ogback.xnl or1ogback.groovy
* Log4j2 1og4j2-spring.xmlor 1og4j2.xml
* JDKJavauUtil logging.properties Logging)
* logback.xml:直接就被日志框架识别了;
* logback-spring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,
* 可以使用SpringBoot的高级Profile功能
*
* <springProfile name="staging">
* <!--configuration to be enabled when the"staging"profile is active-->
* 可以指定某段配置只在某个环境下生效
* </springProfile>
*
*
*/
/**
* spring boot 默认 slf4j logback
*
* 将日志框架切换为log4j2。 先排除,后添加依赖
*
* <dependency>
* <groupId>org.springframework.boot</groupId>
* <artifactId>spring-boot-starter-web</artifactId>
* <exclusions>
* <!-- 先排除 -->
* <exclusion>
* <artifactId>spring-boot-starter-logging</artifactId>
* <groupId>org.springframework.boot</groupId>
* </exclusion>
* </exclusions>
* </dependency>
* <!--后添加-->
* <dependency>
* <groupId>org.springframework.boot</groupId>
* <artifactId>spring-boot-starter-log4j2</artifactId>
* </dependency>
*
*/
/**
* slf4j+log4j的方式;
* 先排除,后添加依赖
* <dependency>
* <groupId>org.springframework.boot</groupId>
* <artifactId>spring-boot-starter-web</artifactId>
* <exclusions>
* <!-- 先排序覆盖 -->
* <exclusion>
* <artifactId>logback-classic</artifactId>
* <groupId>ch.qos.logback</groupId>
* </exclusion>
* </exclusions>
* </dependency>
* <!-- 后引入 -->
* <dependency>
* <groupId>org.slf4j</groupId>
* <artifactId>slf4j-log4j12</artifactId>
* </dependency>
*
*/
public static void main(String[] args) {
String string = "world";
Logger logger = LoggerFactory.getLogger(Logs.class);
logger.info("hello {}",string);
}
}