SpringBoot 使用slf4j(logback)入门
2017-09-05 15:05
405 查看
说明
在项目中都需要使用日志组件来记录和输出日志,我们通常使用的日志方式有System.out.println或log4j。在Springboot中提供了 SLF4J(Simple Logging Facade For Java),SLF4J是一套日志接口默认使用logback日志组件,也可以自己替换为log4j等其他日志组件
由于我们计划使用默认的日志组件,因此也就不需要在额外引入什么了
准备工作
在项目的contorller包中新建类LogController.java日志代码
编辑类代码如下package com.gl.springbootapi.controller; import com.gl.springbootutils.helper.CommonMethod; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.text.SimpleDateFormat; import java.util.Date; @RestController @RequestMapping("/log") public class LogController { private static final Logger loggerStatic = LoggerFactory.getLogger(LogController.class);//静态方式初始化Log对象 private final Logger logger = LoggerFactory.getLogger(this.getClass());//对象方式初始化Log对象 @GetMapping("") public String log() { Date d = CommonMethod.getCurDate(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 loggerStatic.info("当前时间:"+df.format(d)); logger.info("当前时间:"+df.format(d)); logger.debug("当前时间:"+df.format(d)); logger.warn("当前时间:"+df.format(d)); logger.error("当前时间:"+df.format(d)); return "当前时间:"+df.format(d); } }
在这里我们建立了一个controller的api来触发日志记录,具体contorller的mapping不在这里说明,在其他文章里有
代码中首先建立log对象,示例代码中建立了两种log对象,一个是静态的,一个是对象的,如果在对象方法中使用,建议使用对象方式建立,这样每个类就复制黏贴就行了,使用静态方法的,需要每个类改类名,很容易遗漏
建立好log对象之后可以记录日志
日志有4个级别,INFO、DEBUG、WARN、ERROR
可以在配置文件中定义输出级别
这样记录的日志会在控制台输出
如果希望输出到文件或数据库,可以写配置文件进行配置
配置
对于日志的配置可以直接配置到application.properties中,也可以建立logback.xml对logback进行配置,如果同时有两个配置,application.properties的优先级更高application.properties方式配置
loggin.level指定日志级别,还可以再具体指定包的级别
logging.path指定日志路径
logging.file指定日志文件(path和file只能使用一个,file优先级高,file可以指定全路径)
logging.config指定使用的xml配置文件地址
logback.xml方式配置
在resources目录下建立文件logback.xml内容如下
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!--定义日志文件的存储地址--> <property name="LOG_HOME" value="/logs" /> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <!-- 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log</FileNamePattern> <!--日志文件保留天数--> <MaxHistory>30</MaxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!-- 日志输出级别 --> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> <!--日志异步到数据库 --> <!--<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">--> <!--<!–日志异步到数据库 –>--> <!--<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">--> <!--<!–连接池 –>--> <!--<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">--> <!--<driverClass>com.mysql.jdbc.Driver</driverClass>--> <!--<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>--> <!--<user>root</user>--> <!--<password>root</password>--> <!--</dataSource>--> <!--</connectionSource>--> <!--</appender>--> </configuration>
这样就会在磁盘根目录下建立logs文件夹,日志就存放到这里,按照规定的命名规则和大小
说明
如果想使用logback.xml方式进行配置,配置文件命名为logback.xml,Spring可以直接找到使用,如果希望定义不同环境的配置文件,例如logback-dev.xml、logback-test.xml
则需要在application.properties添加配置
logging.config=classpath:logback-test.xml
相关文章推荐
- logback和slf4j的使用的入门chapter1
- SLF4J 和 Logback 在 Maven 项目中的使用方法
- java日志组件logback、slf4j的介绍及配置使用方法(二)
- 【Java】SpringBoot入门学习及基本使用
- java日志之slf4j与logback简单使用
- SpringBoot入门-8(使用properties进行配置)
- SpringBoot入门——使用Swagger构建Restful API文档
- SpringBoot入门-15(springboot配置freemarker使用YML)
- java日志组件logback、slf4j的介绍及配置使用方法(一)
- Android-->Log系统,Logback的使用体验(slf4j)
- Android Log存储到本地Logback的使用体验(slf4j)
- springboot入门(三)-- springboot集成mybatis及mybatis generator工具使用
- SpringBoot从入门到进阶——学会Logback日志的配置和搭建
- 使用slf4j或logback替换掉commons-logging
- Slf4j MDC 使用和 基于 Logback 的实现分析
- log4j bonding slf4j,log4j2的hello world版,slf4j使用log4j2 入门经验
- Android-->Log系统,Logback的使用体验(slf4j)
- SpringBoot入门系列篇(四):使用SpringBoot创建定时任务
- logback和slf4j的使用之encoder和Layout
- maven 项目 springmvc spring 使用SLF4J和 LogBack 做为日志 xml里配置即可