在SpringBoot项目中,只需要在 logback-xxx.xml配置文件中进行相关的配置即可。如果是普通的maven项目, 则需要加入jar包,要加入slf4j和logback的jar包,slf4j需要的jar包为slf4j-api,logback需要3个jar包(logback-access、logback-classic、logback-core)。
slf4j下载地址:https://www.slf4j.org/download.html
logback下载地址:https://logback.qos.ch/download.html
下载后解压,选择所需要的4个jar包即可。
目录结构如下:
目录结构.png下面我们来看具体的配置
关于配置的解释已经在注释中写了
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--配置控制台日志输出格式-->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
<!--%d表示日期, %msg表示日志的信息, %n表示换行-->
%d - %msg%n
</pattern>
</layout>
</appender>
<!--配置info信息输出到一个文件-->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--根据级别过滤掉匹配的日志,不输出error级别的日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<!--匹配上ERROR级别的日志信息,则不会输出到该文件中-->
<onMatch>DENY</onMatch>
<!--匹配不上ERROR级别的日志信息,则输出到该文件中-->
<onMismatch>ACCEPT</onMismatch>
<!--这样过滤以后,该文件中只会输出info级别的日志信息-->
</filter>
<!--日志输出格式,同上-->
<encoder>
<pattern>
%d - %msg%n
</pattern>
</encoder>
<!--滚动策略,按时间每天生成一个日志文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件路径-->
<fileNamePattern>F:/log/springboot/info.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<!--配置error信息输出到一个文件-->
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--根据范围过滤日志,只输出error级别的日志-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<!--日志输出格式-->
<encoder>
<pattern>
%d - %msg%n
</pattern>
</encoder>
<!--滚动策略,按时间每天生成一个日志文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件路径-->
<fileNamePattern>F:/log/springboot/error.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="consoleLog"/>
<appender-ref ref="fileInfoLog"/>
<appender-ref ref="fileErrorLog"/>
</root>
</configuration>
在程序用引用Logback,输出操作日志
@Controller
public class TestController {
private final Logger logger = LoggerFactory.getLogger(TestController.class);
@RequestMapping("/home")
@ResponseBody
public String home(){
logger.info("logback 访问hello");
logger.error("logback 访问hello");
return "Hello World";
}
}
网友评论