1.前言
是不是还在使用System.out.println()打印数据到控制台看?
东西少还好,如果多起来,那就看的很烦人了,特别还有加时间等信息。
怎么解决?
可以使用日志框架 ,常见的有 logging 、log4j等 ,这一篇随笔详细讲解 logback。
log4j 、slf4j、logback 都是一个作者开发的,但是作者说log4j太烂了,都懒得修改,于是开发了 logback
2.操作
(1)导入依赖包
如果是 spring boot 工程则不需要导入依赖包,是自带的
//
如果是其他工程,但是不使用spring ,则直接添加这个
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
如果是spring ,则还需要将spring控制器的依赖包内部的logging去除
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
<!--因为使用了sl4j,所以去掉commons-logging-->
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
并添加commons logging到slf4j的桥接器jcl-over-slf4j【不添加则无法使用】
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
(2)在application.properties文件配置logging信息
# 指定日志输入级别【根节点,表明整个项目基本的日志级别】 logging.level.root=info # ** 表示是指定的某个文件的路径或类的日志级别 #logging.level.**=info # 指定日志输出位置和日志文件名 , ./指工程根目录 #logging.file.name=./log/log.txt # 指定日志输出路径,若file和path同时配置,则file生效 # 此配置默认生成文件为spring.log logging.file.path=./log # 控制台日志输出格式 # -5表示从左显示5个字符宽度 logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %boldYellow(%thread) | %boldGreen(%logger) | %msg%n # 文件中输出的格式 logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} = [%thread] = %-5level = %logger{50} - %msg%n #说明 # #日志输出格式: #%d表示日期时间, #%thread表示线程名, #%-5level:级别从左显示5个字符宽度 #%logger{50} 表示logger名字最长50个字符,否则按照句点分割。 #%msg:日志消息, #%n是换行符 #%highlight 、%boldYellow、%boldGreen是不同的显示颜色