SpringBoot之LogBack常用配置
2017-09-25 15:26
459 查看
前言
若我们使用的是Starters,则SpringBoot默认日志框架是logback,所以我们在SpringBoot中使用它还是比较简单的。需求明确
需要一个总日志,记录系统、环境的信息根据包名,分别在对应目录下输出日志
输出的日志要有必须的信息,方便调试
定时删除日志,日志限定大小
编写测试类
需求明确后,我这里编写两个测试类Controller
@RestController public class UserController { private final static Logger logger = LoggerFactory.getLogger(UserController.class); @Autowired private UserService mUserService; @GetMapping("/log") public String logController() { logger.info("controller"); return mUserService.logService(); } }
Service
@Service public class UserService { private final static Logger logger = LoggerFactory.getLogger(UserService.class); public String logService() { logger.info("service"); return "hello logback"; } }
Application
@RestController @SpringBootApplication public class ZsdkApplication { private final static Logger logger = LoggerFactory.getLogger(ZsdkApplication.class); @RequestMapping("/") public String showIndex() { logger.info("hello world for log"); return "hello world for log"; } public static void main(String[] args) { SpringApplication.run(ZsdkApplication.class, args); } }
在resources文件夹下放置logback的配置文件
注意:配置文件最好以logback-spring.xml命名,这也是SpringBoot推荐的,不然有可能日志初始化有问题<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <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个字符宽度,%line:行号,%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} Line:%line ----------------> %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}/system/SDKWeb-%d{yyyy-MM-dd}.log</FileNamePattern> <!--日志文件保留天数--> <MaxHistory>30</MaxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} Line:%line ----------------> %msg%n</pattern> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!-- show parameters for hibernate sql 专为 Hibernate 定制 --> <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" /> <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" /> <logger name="org.hibernate.SQL" level="DEBUG" /> <logger name="org.hibernate.engine.QueryParameters" level="DEBUG" /> <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" /> <!--myibatis log configure--> <logger name="com.apache.ibatis" level="TRACE"/> <logger name="java.sql.Connection" level="DEBUG"/> <logger name="java.sql.Statement" level="DEBUG"/> <logger name="java.sql.PreparedStatement" level="DEBUG"/> <!-- 日志输出级别 --> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> <!--分包输出日志,分包配置--> <appender name="serviceAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/service/SdkService-%d{yyyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} Line:%line ----------------> %msg%n</pattern> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <appender name="controllerAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/controller/SdkController-%d{yyyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} Line:%line ----------------> %msg%n</pattern> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!--分包输出日志,分包指向--> <logger name="com.zsdk.service" level="INFO" additivity="false"> <appender-ref ref="serviceAppender" /> </logger> <logger name="com.zsdk.controller" level="INFO" additivity="false"> <appender-ref ref="controllerAppender" /> </logger> </configuration>
测试
访问http://localhost:8080和http://localhost:8080/log然后就会在对应目录生成文件夹和log
相关文章推荐
- spring-boot-started-logging logback常用配置之<filter>标签详解
- spring-boot-starter-logging logback常用配置之<appender>标签详解
- spring-boot-started-logging logback常用配置之<filter>标签详解
- spring-boot-starter-logging logback常用配置之<appender>标签详解
- SpringBoot实践之---默认日志logback配置解析
- SpringBoot整合+logback日志配置
- logback 和spring boot 集成 配置 范例
- 基于Spring Boot的Logback日志轮转配置详解
- spring boot logback.xml 文件 配置出力到linux 下的系统log
- Spring Boot : logback和log4j2配置(五)
- spring boot之spring mvc常用配置--路径匹配参数设置(7)
- SpringBoot中配置logback
- Spring Boot 一些常用的pom配置
- Spring Boot常用配置
- java鬼混笔记:springboot 10、springboot logback-spring.xml简单的日志配置
- SpringBoot常用配置介绍
- spring boot 日志配置 logback-spring.xml
- Spring Boot基础教程——日志配置-logback和log4j2
- SpringBoot常用配置
- spring boot日志配置 Logback、yml