1.前言
是不是还在使用System.out.println()打印数据到控制台看?
东西少还好,如果多起来,那就看的很烦人了,特别还有加时间等信息。
怎么解决?
可以使用日志框架 ,常见的有 logging 、log4j等 ,这一篇随笔详细讲解 logging
2.操作
(1)导入依赖包
如果是 spring boot 工程则导入这个依赖包
<!-- logging日志--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency>
如果是其他工程,则使用这个
<dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency>
(2)在application.properties文件配置logging信息
# 指定日志输入级别 logging.level.root=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是不同的显示颜色
3.测试
这里只展示spring boot 工程 使用logging的测试类 ,其他工程还需要单独配置 xml才可以使用读取application.properties ,我懒得弄,
虽然也可以打印的控制台,但是无法生成文件
package com.example.javabaisc.log; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest @RunWith(SpringRunner.class) public class LogTest { // 记录器 Logger log = LoggerFactory.getLogger(getClass()); @Test public void t() { //日志的级别; //由低到高 trace<debug<info<warn<error //可以调整输出的日志级别;日志就只会在这个级别之后的高级别生效 log.trace("trace级别的日志--11111"); log.debug("debug级别的日志--2222222"); //SpringBoot默认给我们使用的是info级别的,没有指定级别的就用SpringBoot默认规定的级别 log.info("info级别的日志--33333"); log.warn("warn级别的日志--44444444"); log.error("error级别的日志--5555555"); } }
打印结果
日志 文件内容
原文:https://www.cnblogs.com/c2g5201314/p/13139979.html