两种使用日志的方法
方法1,创建 Logger 对象
@RunWith(SpringRunner.class)
@SpringBootTest
public class LoggerTest {
private final Logger logger = LoggerFactory.getLogger(LoggerTest.class);
@Test
public void test1() {
logger.debug("debug..........");
logger.info("info..........");
logger.error("error..........");
}
}
然后就可以在类中使用 logger 来输出日志
方法2,使用 @Slf4j
添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
使用
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class LoggerTest {
@Test
public void test1() {
log.debug("debug..........");
log.info("info..........");
log.error("error..........");
}
}
在日志中输出变量
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class LoggerTest {
@Test
public void test1() {
String name = "qyfl";
String password = "123456";
log.info("name:({}), password:({})", name, password);
}
}
{ } 是占位符,将后面的参数依次填充到占位符中。
Logback 配置
方式一:application.yml
logging:
pattern:
console: "%d-%msg%n"
path: /var/log/tomcat/
file: /var/log/tomcat/sell.log
pattern.console
配置的是日志输出格式,
path
配置的是文件输出路径,
file
配置的是日志文件的名字。 配置 file 的时候已经包含了 path 的配置,就无需另外配置 path 了。
logging:
level: debug
将日志的级别设置为 debug ,比 debug 等级高的日志会被全部打印出来,低于 debug 级别的日志,不会被打印。
level
的设置还可以精确到类,比如
logging:
level:
com.imooc.LoggerTest: debug
方式二:logback-spring.xml
在 resources 目录下新建 logback-spring.xml
文件
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- 设置控制台 log -->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d - %msg %n</pattern>
</layout>
</appender>
<!-- 设置 INFO 级别的 log -->
<appender name="InfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志,只留下 INFO 级别的 log -->
<filter ch="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 设置 log 输出格式 -->
<encoder>
<pattern>%msg%sn</pattern>
</encoder>
<!-- 滚动策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志路径 -->
<fileNamePattern>
/var/log/tomcat/sell/info.%d.log
</fileNamePattern>
</rollingPolicy>
</appender>
<!-- 设置 DEBUG 级别的 log -->
<appender name="ErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志,只留下 ERROR 级别的 log -->
<filter ch="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 设置 log 输出格式 -->
<encoder>
<pattern>%msg%sn</pattern>
</encoder>
<!-- 滚动策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志路径 -->
<fileNamePattern>
/var/log/tomcat/sell/debug.%d.log
</fileNamePattern>
</rollingPolicy>
</appender>
<!-- 设置 ERROR 级别的 log -->
<appender name="ErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤日志,只留下 ERROR 级别的 log -->
<filter ch="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 设置 log 输出格式 -->
<encoder>
<pattern>%msg%sn</pattern>
</encoder>
<!-- 滚动策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志路径 -->
<fileNamePattern>
/var/log/tomcat/sell/error.%d.log
</fileNamePattern>
</rollingPolicy>
</appender>
<!-- 设置日志级别 -->
<root level="info">
<!-- 使用那些配置项 ref 中的名字要和 appender.name 对应 -->
<appender-ref ref="consoleLog"/>
<appender-ref ref="InfoLog"/>
<appender-ref ref="ErrorLog"/>
</root>
</configuration>
<pattern>
配置日志输出格式
<root level="info">
将配置作用在 root 节点下面,级别调为 info (低于 info 不会打印)。
<appender-ref ref="consoleLog" />
设置到控制台日志
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
设置日志为滚动日志
网友评论