Spring-boot项目的日志笔记

16 篇文章 0 订阅
14 篇文章 0 订阅

运行spring-boot项目的命令:mvn spring-boot:run

SpringBoot对所有内部日志使用通用日志记录,但保留底层日志实现。为Java Util Logging、Log4J2和Logback提供了默认配置。在不同的情况下,日志记录器都预先配置为使用控制台输出,同时还提供可选的文件输出。默认情况下,SpringBoot使用Logback进行日志记录。

日志级别有(从高到低):FATAL(致命),ERROR(错误),WARN(警告),INFO(信息),DEBUG(调试),TRACE(跟踪)或者 OFF(关闭),默认的日志配置在消息写入时将消息回显到控制台。默认情况下,将记录错误级别、警告级别和信息级别的消息。

标准日志格式:

2021-03-07 20:43:54.768  INFO 11004 --- [  restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-03-07 20:43:55.704  INFO 11004 --- [  restartedMain] c.h.q.s.SpringbootLogbackApplication     : Started SpringbootLogbackApplication in 5.387 seconds (JVM running for 6.096)

分别是:
日期时间,毫秒(方便排序);
日志级别:错误、警告、信息、调试或跟踪(可参考上边的日志级别);
进程ID;
分隔符;
线程名称;
程序名称;
日志消息;

SpringBoot推荐我们使用带-spring后缀的 logback-spring.xml 扩展配置,因为默认的的logback.xml标准配置,Spring无法完全控制日志初始化。(spring扩展对springProfile节点的支持)
根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载:

Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
Log4j2:log4j2-spring.xml, log4j2.xml
JDK (Java Util Logging):logging.properties
默认的命名规则,并且放在 src/main/resources 下面即可

如果需要按日志级别分别输出到对应的日志文件,在appender标签新增filter标签进行指定

<!-- 时间滚动输出 level为 【debug / info / warn / error】 日志 -->
<appender name="【DEBUG / INFO / WARN / ERROR】_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    
    <!-- 忽略其他配置 -->
    
    <!-- 此日志文件只记录 【debug / info / warn / error】 级别的 -->
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>【debug / info / warn / error】</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>
</appender>

Maven导包不全:Error:(9,27) java: 程序包lombok.extern.slf4j不存在
1.重新导包
2.命令行输入mvn idea:idea 下载包

IDEA出现Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream的解决方法
在这里插入图片描述
解决办法:
在这里插入图片描述

thymeleaf 表达式
在这里插入图片描述

内联js
内联文本:[[…]]内联文本的表示方式,使用时,必须先用th:inline=”text/javascript/none”激活,th:inline可以在父级标签内使用,甚至作为body的标签。内联文本尽管比th:text的代码少,不利于原型显示。
获取项目路径:

<script th:inline="javascript" type="text/javascript">
    var ctxPath  = [[@{/}]];
    var ctxPath = /*[[@{/}]]*/'';
    var ctxPath=
</script>

2021/3/10
Uncaught ReferenceError: send is not defined at HTMLInputElement.onclick (websocket.html:44)
找不到JAVASCRIPT 这个包
修改路径

2021/3/10
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

2021/3/11
添加logback-test.xml文件,其中包含对于日志输出的一些设置,注意下图红框中内容:一定记得把数据库信息改成自己的,然后需要注意的是如果数据库的版本在6以下,要注意配置文件的驱动是com.mysql.jdbc.Driver而不是com.mysql.cj.jdbc.Driver
在这里插入图片描述

默认安装后error_log,slow_log 日志时间戳默认为UTC,因此会造成与系统时间不一致,与北京时间相差8个小时

因为log_timestamps 是一个GLOBAL的全局参数,所以直接在登录后去set全局参数,重启后就会直接失效

因此需要在mysql的配置文件中[mysqld]中增加一条log_timestamps的配置:

log_timestamps=SYSTEM

参考logback官方文档,地址为https://logback.qos.ch/manual/configuration.html;

2021/3/12
@Scheduled定时任务
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。

按顺序依次为
秒(0~59)
分钟(0~59)

小时(0~23)

天(月)(0~31,但是你需要考虑你月的天数)

月(0~11)

天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)

7.年份(1970-2099)

0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点
“0 0 12 * * ?” 每天中午12点触发
“0 15 10 ? * *” 每天上午10:15触发
“0 15 10 * * ?” 每天上午10:15触发
“0 15 10 * * ? *” 每天上午10:15触发
“0 15 10 * * ? 2005” 2005年的每天上午10:15触发
“0 * 14 * * ?” 在每天下午2点到下午2:59期间的每1分钟触发
“0 0/5 14 * * ?” 在每天下午2点到下午2:55期间的每5分钟触发
“0 0/5 14,18 * * ?” 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
“0 0-5 14 * * ?” 在每天下午2点到下午2:05期间的每1分钟触发
“0 10,44 14 ? 3 WED” 每年三月的星期三的下午2:10和2:44触发
“0 15 10 ? * MON-FRI” 周一至周五的上午10:15触发
“0 15 10 15 * ?” 每月15日上午10:15触发
“0 15 10 L * ?” 每月最后一日的上午10:15触发
“0 15 10 ? * 6L” 每月的最后一个星期五上午10:15触发
“0 15 10 ? * 6L 2002-2005” 2002年至2005年的每月的最后一个星期五上午10:15触发
“0 15 10 ? * 6#3” 每月的第三个星期五上午10:15触发

//每一个小时执行一次

@Scheduled(cron = "0 0 * * * ?")
/**

每两个小时执行一次
* Scheduled task
*/
@Scheduled(cron = "0 0 */2 * * ?")

in ‘reader’, line 1, column 1:
server:
^

in ‘reader’, line 18, column 2:
mvc:
^
spring:
datasource:
backuppath: E:\logs\testbackup
type: com.alibaba.druid.pool.DruidDataSource

url: jdbc:mysql://localhost:3306/changhai?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimeZone=UTC
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
dbName: changhai

server:
port: 8080
error:
whitelabel:
enabled: false
mvc:
favicon:
enabled: false

jmx:
enabled: false

cache:
type: simple

logging:
level:
org.springframework.web: INFO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

super尚

谢谢老板!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值