logback的使用:

Logback的默认配置

如果配置文件 logback-test.xml 和 logback.xml 都不存在,那么 logback 默认地会调用BasicConfigurator ,创建一个最小化配置。最小化配置由一个关联到根 logger 的ConsoleAppender 组成。输出用模式为%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 的 PatternLayoutEncoder 进行格式化。root logger 默认级别是 DEBUG。

1、Logback的配置文件

Logback 配置文件的语法非常灵活。正因为灵活,所以无法用 DTD 或 XML schema 进行定义。尽管如此,可以这样描述配置文件的基本结构:以

2、Logback默认配置的步骤

(1). 尝试在 classpath 下查找文件 logback-test.xml;

(2). 如果文件不存在,则查找文件 logback.xml;

(3). 如果两个文件都不存在,logback 用 Bas icConfigurator 自动对自己进行配置,这会导致记录输出到控制台。

3、Logback.xml 文件

在src/main/resources下添加Logback.xml目录如下:

Logback.xml配置如下:

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
<!--tomcat下日志存放路径的配置,其他应用服务器,请自己改动-->
<property name="LOG_PATH" value="${CATALINA_HOME:-..}/logs/hy360"/>
<!-- 彩色日志格式 -->
<!--不加粗的彩色格式,喜欢用就消掉注释-->
<!--<property name="CONSOLE_LOG_PATTERN" value="%boldCyan(%date{yyyy-MM-dd HH:mm:ss:SSS}) | %highlight(%-5level) | %yellow(%15.15t) | %green(%40.40logger{39}) | %msg%n"/>-->
<!--加粗的彩色格式,不喜欢就用上面的-->
<property name="CONSOLE_LOG_PATTERN"
value="%boldCyan(%date{yyyy-MM-dd HH:mm:ss:SSS}) | %highlight(%-5level) | %boldYellow(%15.15t) | %boldGreen(%40.40logger{39}) | %gray(%msg%n)"/>
<!--日志文件里的 日志文字输出格式-->
<property name="FILE_LOG_PATTERN"
value="[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n"/>
<!-- Console 输出设置 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--encoder 默认配置为PatternLayoutEncoder -->
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<!-- 按照每天生成日志文件 -->
<!-- 出错日志 appender -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<!-- log.dir 在maven profile里配置 -->
<fileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}-error.%i.log.zip</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxFileSize>10MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<!-- 只打印错误日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- info日志 appender -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<fileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}-info.%i.log.zip</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxFileSize>10MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<!-- 只打印INFO日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ERROR"/>
<appender-ref ref="INFO"/>
</root>
</configuration>

在程序用引用Logback:

public class WxPayController {
private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired
private WxPayServiceImpl wxPayService;
@Autowired
private AliPayService payService; @GetMapping("/queryOrder")
public ResultVo<Integer> queryOrder(@RequestParam(required = false) String transactionId,
@RequestParam(required = false) String outTradeNo) {
try {
wxPayService.queryOrder(transactionId, outTradeNo);
} catch (WxPayException e) {
logger.error("查询微信支付订单时发生错误,原因:" + e.getMessage());
}
return ResultVo.success(0);
}
}

Spring Boot Logback日志配置的更多相关文章

  1. Spring Boot Logback 默认配置

    Spring Boot Logback 默认配置 标签(空格分隔): Spring Boot Intro(介绍) Spring Boot 1.5.9 默认使用的日志框架是 Logback. 生效的默认 ...

  2. [日志] spring boot + logback 日志输出配置

    一.输出日志到控制台 springboot有很多starter(参考starter)方便快速构建项目依赖组件,logback是springboot默认的日志组件,启动即可看到打印在控制台输出的info ...

  3. Spring Boot系列——日志配置

    日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节.但是,这丝毫不影响它在任何一个系统中的重要的地位. 为了保证服务的高可用,发现问题一定要即使,解决问题一定要迅速,所以生 ...

  4. (六)Spring Boot之日志配置-logback和log4j2

    一.简介 支持日志框架:Java Util Logging, Log4J2 and Logback,默认是使用logback 配置方式: 默认配置文件配置 引用外部配置文件配置 二.默认配置文件配置( ...

  5. Spring Boot的日志配置

    一.配置logback日志 Spring Boot默认使用logback打印日志 需要增加依赖 <groupId>org.springframework.boot</groupId& ...

  6. (转)Spring boot——logback.xml 配置详解(四)<filter>

    文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 1 filter的使用 <filter>: Logback的过滤器基于三值逻辑( ...

  7. (转)Spring boot——logback.xml 配置详解(二)

    文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 1 根节点<configuration>包含的属性 scan: 当此属性设置为t ...

  8. Spring boot——logback.xml 配置详解(四)<filter>

    阅读目录 1 filter的使用 2 常用的过滤器 文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 回到顶部 1 filter的使用 < ...

  9. Spring boot——logback.xml 配置详解(二)

    阅读目录 1 根节点包含的属性 2 根节点的子节点 文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 回到顶部 1 根节点<config ...

随机推荐

  1. ORM概念

    ORM概念: 指对象结构和数据库架构间的映射,对象和数据库架构有一定的映射关系,让程序员可以不必编写sql

  2. Rhino学习教程——1.5

    图形面板 图形面板是Rhino为了方便用户操作设置的一个区域,默认提供了“属性”.“图层”.“说明”3个面板(我自定义过了,新增了一个“显示”功能 ). trip:如果要打开更多的图版,可以点击图形面 ...

  3. js中!和!!的区别及用法

    js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值,1.!可将变量转换成boolean类型,null.undefined和空字符串取反都为false,其 ...

  4. ios调用Google地图

    现在的ios版本一般只支持https协议,而引用谷歌地图API时只提供src="http://maps.google.cn/maps/api/js..",https协议无法使用,解 ...

  5. R语言RODBC数据库操作

    最近准备做一个股票的数据库,用R语言来获取数据,然后存在SQL Sever 2016 express 里面,虽然前面接触过一些操作,但是还是很不熟悉,现在数据已经能获取到了,是时候好好学习一下怎么用R ...

  6. 杭电ACM1007

    Quoit Design Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  7. sqoop碰到的问题

    sqoop碰到的问题 背景:从Oracle接入数据,一张表一千多万,数据量13G左右. 报错,表名找不到,将表名改成大写的 Exception in thread "main" j ...

  8. CSS3简单画出3d图形

    1.气球 2.泳圈 1.2两图实现代码分别如下: <html> <head> <meta charset="utf-8"> <meta h ...

  9. 前段学习的roadmap

    引自http://www.cnblogs.com/IMxinu/p/9693041.html

  10. ForkJoinPool 源码

    ForkJoinPool----FJP先看task.fork方法,含义是将当前任务,放到当前线程的工作队列中.但是第一次执行这个方法是在主线程中,主线程是不可能被FJP管理的.那么就进入ForkJoi ...