springboot logback日志的使用
以下有两个使用,一个是简单使用,另一个是需要进行详细的配置再使用。首先给出源代码。可以直接使用
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ScheduledTasks {
private static Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
private static SimpleDateFormat dateFormat = new SimpleDateFormat();
@Scheduled(cron="0 0 0 * * ?")//每天0点开始
public void reportCurrent() {
logger.info("现在时间:{}", dateFormat.format(new Date()));
logger.error("现在时间:{}", dateFormat.format(new Date()));
} }
简单使用1:如果只是简单的使用,不用具体的配置,可以使用以下的logback
#设置路径
logging.path=F:\\demo
#设置日志文件名
logging.file=demo.log
#下面可以配置指定日志级别输出到日志文件里面
logging.level.root=ERROR
配置使用2:logback.xml详细配置如下:
在application.properties中引用:注意logback.xml放置的位置
logging.config=classpath:logback.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!--
scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true
scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位默认单位是毫秒,当scan为true时此属性生效,默认时间间隔为1分钟
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态,默认值为false
-->
<configuration scan="true" scanPeriod="3 seconds" debug="false">
<!-- 这一句的意思是打印所有进入的信息 -->
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<!--
appender是<configuration>的子节点,是负责写日志的组件
两个必要属性name和class:name指定appender名称,class指定appender的全限定名
定义控制台appender 作用:把日志输出到控制台 class="ch.qos.logback.core.ConsoleAppender"
-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 对日志进行格式化 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
{"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSS}","thread":"%t","line":"%line","log_level":"%p","class_name":"%C;","msg":"%m"}\n
</pattern>
</layout>
</appender>
<!--
定义滚动记录文件appender 作用:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件
RollingFileAppender class="ch.qos.logback.core.rolling.RollingFileAppender"
参数:
<append>:如果是true日志被追加到文件结尾,如果是false清空现存文件,默认是true
<file>:被写入的文件名,可以是相对目录也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值
<rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名
<triggeringPolicy>:告知RollingFileAppender合适激活滚动
<prudent>:当为true时不支持FixedWindowRollingPolicy支持TimeBasedRollingPolicy,但是有两个限制:1不支持也不允许文件压缩,2不能设置file属性必须留空
-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 如果是true日志被追加到文件结尾,如果是false清空现存文件,默认是true -->
<append>true</append>
<File>logs/logback-test.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天滚动一次的日志 只保留30天内的日志文件 -->
<FileNamePattern>
logs/logback-test.%d{yyyy-MM-dd}.log.zip
<maxHistory>30</maxHistory>
</FileNamePattern>
<!-- 每分钟滚动一次日志 -->
<!-- <FileNamePattern>
logs/logback-test.%d{yyyy-MM-dd_HH-mm}.log.zip
</FileNamePattern> -->
</rollingPolicy>
<!-- 对日志进行格式化 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
{"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSS}","thread":"%t","line":"%line","log_level":"%p","class_name":"%C;","msg":"%m"}\n
</Pattern>
</layout>
</appender>
<!--
定义滚动记录文件appender 作用:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件
RollingFileAppender class="ch.qos.logback.core.rolling.RollingFileAppender"
参数:
<append>:如果是true日志被追加到文件结尾,如果是false清空现存文件,默认是true
<file>:被写入的文件名,可以是相对目录也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值
<rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名
<triggeringPolicy>:告知RollingFileAppender合适激活滚动
<prudent>:当为true时不支持FixedWindowRollingPolicy支持TimeBasedRollingPolicy,但是有两个限制:1不支持也不允许文件压缩,2不能设置file属性必须留空
-->
<appender name="LOGBACK_ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<file>logs/logback-test-error.log</file>
<!--
定义滚动策略 作用:根据固定窗口算法重命名文件的滚动策略 class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy
<fileNamePattern>:表示当触发了回滚策略后,按这个文件命名规则生成归档文件,命名规则中的%i表示在maxIndex和minIndex之间的一个整数值
<minIndex>:最小索引值
<maxIndex>:最大索引值
-->
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/logback-test-error.log.%i</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
</rollingPolicy>
<!--
定义按文件大小触发滚动策略triggeringPolicy 作用:查看当前活动文件的大小,如果超过指定大小会告知RollingFileAppender触发当前活动文件滚动
只有一个参数 maxSize 这是活动文件的大小,默认值是10MB
-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>50MB</maxFileSize>
</triggeringPolicy>
<!--
配置日志级别过滤器 作用:根据日志级别进行过滤,如果日志级别等于配置级别过滤器会根据onMath和onMismatch接收或拒绝日志
参数:
<level>:设置过滤级别
<onMatch>:用于配置符合过滤条件的操作
<onMismatch>:用于配置不符合过滤条件的操作
此处配置为只接收ERROR日志级别信息
-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>
{"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSS}","thread":"%t","line":"%line","log_level":"%p","class_name":"%C;","msg":"%m%n", "caller":"%caller{1}"}
</pattern>
</encoder>
</appender>
<!--
定义滚动记录文件appender 作用:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件
RollingFileAppender class="ch.qos.logback.core.rolling.RollingFileAppender"
参数:
<append>:如果是true日志被追加到文件结尾,如果是false清空现存文件,默认是true
<file>:被写入的文件名,可以是相对目录也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值
<rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名
<triggeringPolicy>:告知RollingFileAppender合适激活滚动
<prudent>:当为true时不支持FixedWindowRollingPolicy支持TimeBasedRollingPolicy,但是有两个限制:1不支持也不允许文件压缩,2不能设置file属性必须留空
-->
<appender name="LOGBACK_ALL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<file>logs/logback-test-all.log</file>
<!--
定义滚动策略 作用:根据固定窗口算法重命名文件的滚动策略 class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy
<fileNamePattern>:表示当触发了回滚策略后,按这个文件命名规则生成归档文件,命名规则中的%i表示在maxIndex和minIndex之间的一个整数值
<minIndex>:最小索引值
<maxIndex>:最大索引值
-->
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/logback-test-all.log.%i</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
</rollingPolicy>
<!--
定义按文件大小触发滚动策略triggeringPolicy 作用:查看当前活动文件的大小,如果超过指定大小会告知RollingFileAppender触发当前活动文件滚动
只有一个参数 maxSize 这是活动文件的大小,默认值是10MB
-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>50MB</maxFileSize>
</triggeringPolicy>
<!--
配置临界值过滤器 作用:过滤掉低于指定临界值的日志,当日志级别等于或高于临界值时过滤器返回NEUTRAL,当日志级别低于临界值时,日志会被拒绝
此处配置为INFO 即过滤掉日志级别小于INFO的日志信息
-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>
{"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSS}","thread":"%t","line":"%line","log_level":"%p","class_name":"%C;","msg":"%m%n", "caller":"%caller{1}"}
</pattern>
</encoder>
</appender>
<!--
logger用来设置某一个包的日志打印级别,以及指定<appender>
<loger> 仅有一个name属性,一个可选的level和一个可选的addtivity属性
name:用来指定受此loger约束的某一个包或者具体的某一个类
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
addtivity:是否向上级loger传递打印信息。默认是true,会将信息输入到root配置指定的地方,可以包含多个appender-ref,标识这个appender会添加到这个logger
-->
<logger name="com.roberto" level="DEBUG" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="LOGBACK_ALL_LOG" />
<appender-ref ref="LOGBACK_ERROR_LOG" />
</logger>
<!-- 将root的打印级别设置为"INFO",指定了名字为"FILE","STDOUT"的appender -->
<root>
<level value="INFO" />
<appender-ref red="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
springboot logback日志的使用的更多相关文章
- springboot+logback日志输出企业实践(下)
目录 1.引言 2. 输出 logback 状态数据 3. logback 异步输出日志 3.1 异步输出配置 3.2 异步输出原理 4. springboot 多环境下 logback 配置 5. ...
- springboot+logback日志输出企业实践(上)
目录 1.引言 2.logback简介 3. springboot默认日志框架-logback 3.1 springboot示例工程搭建 3.2 日志输出与基本配置 3.2.1 日志默认输出 3.2. ...
- SpringBoot Logback 日志配置
目录 前言 日志格式 日志输出 日志轮替 日志级别 日志分组 小结 前言 之前使用 SpringBoot 的时候,总是习惯于将日志框架切换为 Log4j2,可能是觉得比较靠谱,也可能年龄大了比较排斥新 ...
- 8. springboot logback 日志整合
在resources目录下,新建log/logback-spring.xml文件,内容如下: <?xml version="1.0" encoding="UTF-8 ...
- SpringBoot Logback日志配置
Logback的配置介绍: 1.Logger.appender及layout Logger作为日志的记录器,把它关联到应用的对应的context上后,主要用于存放日志对象,也可以定义日志类型.级别. ...
- Spring-boot logback日志处理
1:在resources目录下面创建logback.xml配置文件 <?xml version="1.0"?> <configuration> <!- ...
- vscode springboot logback 日志输出到不同文件
参照了:https://blog.csdn.net/appleyk/article/details/78717388# 在src\main\resources中新建一个logback-boot.xml ...
- 在SpringBoot中添加Logback日志处理
前言 SpringBoot项目中在官方文档中说明,默认已经依赖了一些日志框架.而其中推荐使用的就是Logback,所以这一次我将在我的模版中加入Logback日志的配置,说明一下,SpringBoot ...
- springBoot(10)---logback日志
logback日志 一.概述 和log4j优点: 实际上,这两个日志框架都出自同一个开发者之手,Logback 相对于 Log4J 有更多的优点 (1)logback不仅性能提升了,初始化内存加载也 ...
随机推荐
- 洛谷 P2787 语文1(chin1)- 理理思维
题意简述 维护字符串,支持以下操作: 0 l r k:求l~r中k的出现次数 1 l r k:将l~r中元素赋值为k 2 l r:询问l~r中最大连续1的长度 题解思路 珂朵莉树暴力赋值,查询 代码 ...
- JavaWeb购物车
一.类关系 最近又把JavaWeb方面的知识(Servlet.jsp等)过了一遍,发现以前还是接触的太窄太浅.加上才转到IntelliJ IDEA 上故而想用这个项目练练,就当熟悉熟悉IntelliJ ...
- 数据仓库系列之ETL过程和ETL工具
上周因为在处理很多数据源集成的事情一直没有更新系列文章,在这周后开始规律更新.在维度建模中我们已经了解数据仓库中的维度建模方法以及基本要素,在这篇文章中我们将学习了解数据仓库的ETL过程以及实用的ET ...
- SpringMVC源码分析3:DispatcherServlet的初始化与请求转发
在我们第一次学Servlet编程,学java web的时候,还没有那么多框架.我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转 ...
- 程序员过关斩将--cookie和session的关系其实很简单
月高风下,下班路上.... 菜菜哥,告诉你一个秘密,但是不允许告诉任何人 这么秘密,你有男票了?~ 不是,昨天我偷偷去面试了,结果挂了 这不是好事吗,上天让公司留住你..... 好吧,不过还是要请教你 ...
- 关于Function和Object之间先后问题的相关研究
文章说明,博主是一个前端小白,本片文章是博主在学习的过程中碰到的疑惑,根据查找的资料,之后得出的个人结论,文中如果出现错误,欢迎指正. -------路漫漫其修远兮吾将上下而求索,与诸君共勉----- ...
- GIT和SVN教程
各种版本控制工具的简单比较 特性 CVS SVN GIT 并发修改 支持 支持 支持 并发提交 不支持 支持 支持 历史轨迹 不支持更名 支持更名 支持更名 分布式 不支持 不支持 支持 SVN SV ...
- 基于模糊聚类和最小割的层次化三维网格分割算法(Hierarchical Mesh Decomposition)
网格分割算法是三维几何处理算法中的重要算法,具有许多实际应用.[Katz et al. 2003]提出了一种新型的层次化网格分割算法,该算法能够将几何模型沿着凹形区域分割成不同的几何部分,并且可以避免 ...
- vscode 代码补全工具之aiXcoder
突然发现了一个好用的代码补全工具,与人工智能相关,具有自学习能力,据说用的越久补全效果越好,可以帮助我们节省掉好多敲代码的时间,所以这么好的工具当然要分享给大家了.废话不多说,直接上vscode的安装 ...
- linux的一些简单命令
简单学习了一些linux相关的知识,自己做一个简单的总结,可以在一般工作中命令行状态下装装B,哈哈 正则相关 grep grep xxx yyy.file 查找出yyy文件中存在xxx的行 通配符 * ...