SpringBoot框架—Logger使用
1.添加依赖
在pom.xml文件中,添加依赖。但日志模块的依赖取决于使用的Starter依赖,所以完整的依赖如下:
2.导入模块
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
3.普通用法
先注入Logger对象:
private static final Logger log = LoggerFactory.getLogger(MyController.class);
调用:
log.debug("hello info log-debug");
log.error("This is an error message");
修改日志级别:
在application.properties或application.yml中配置
//设置全局日志级别
logging.level.root=WARN;
//设置特定包的日志级别
logging.level.包名=DEBUG
4.高级用法:使用Logback扩展
在src/main/resources下新增文件:logback-spring.xml
logback-spring.xml结构:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback</contextName>
<!--配置日志文件输出路径,value后面是自己的内容-->
<property name="log.path" value="${catalina.base}/logs" />
<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>-->
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--通用-->
<appender name="AutoLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.base}/logs/AutoLogs.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<logger name="autoLog" additivity="false" level="INFO">
<appender-ref ref="AutoLogAppender"/>
</logger>
<!--日志级别-->
<root level="info">
<appender-ref ref="console" />
</root>
</configuration>
注入Logger对象:
private static final Logger AUTO_LOGGER = LoggerFactory.getLogger("autoLog");
"autoLog"来自logback-spring.xml文件中 logger 标签里的name值
调用:
AUTO_LOGGER.error("some param is null");
最后生成的效果:
如果需要输出多个日志文件,在logback-spring.xml中定义多个appender和对应的logger即可