点击关注公众号,利用碎片时间学习

来源:blog.csdn.net/gaopinqiang/

article/details/109228641

springboot日志配置:

springboot默认日志是打印再console中的,不会保存在文件中。我们项目上线肯定要保存日志用于分析的。

一、使用xml配置日志保存(并不需要pom配置slf4j依赖,starter里面已经配置了依赖了)

1、在项目的resources目录下创建一个【logback-spring.xml】日志配置文件

名称只要是一 logback开头就行,测试使用log.xml并不会生成日志。合法名称:logback.xmllogback-spring.xml

备注:要配置logback-spring.xml,springboot会默认加载此文件,为什么不配置logback.xml,因为logback.xml会先application.properties加载,而logback-spring.xml会后于application.properties加载,这样我们在application.properties文中设置日志文件名称和文件路径才能生效

2、编写xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration  scan="true" scanPeriod="60 seconds" debug="false"><contextName>logback</contextName><!--输出到控制台--><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><!--<pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
<!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-30.30C{1.} : %m%n</pattern>--></encoder></appender><!--按天生成日志--><appender name="logFile"  class="ch.qos.logback.core.rolling.RollingFileAppender"><Prudent>true</Prudent> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>poslog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log</FileNamePattern><maxHistory>7</maxHistory> </rollingPolicy><layout class="ch.qos.logback.classic.PatternLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</Pattern></layout></appender><root level="INFO"><appender-ref ref="console" /><appender-ref ref="logFile" /></root></configuration>

上述配置的编码中,对应符号的含义如下

  • %d{HH:mm:ss.SSS}——日志输出时间

  • %thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用

  • %-5level——日志级别,并且使用5个字符靠左对齐

  • %logger ——日志输出者的名字

  • %msg——日志消息

  • %n——平台的换行符

3、编写打印日志

private Logger logger = LoggerFactory.getLogger(TestController.class);logger.info("name = " + name + " || views = " + views);// 使用

4、启动测试

在当前文件夹下会创建一个【poslog/2020-10/22】的文件夹,里面会按天生成日志:【2020-10-22.log】,例如:

2020-10-22 16:38 [main] INFO  org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8088 (http)
2020-10-22 16:38 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8088"]
2020-10-22 16:38 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
2020-10-22 16:38 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.38]
2020-10-22 16:38 [main] INFO  org.apache.catalina.core.AprLifecycleListener - Loaded Apache Tomcat Native library [1.2.23] using APR version [1.7.0].
2020-10-22 16:38 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2020-10-22 16:38 [main] INFO  org.apache.catalina.core.AprLifecycleListener - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
2020-10-22 16:38 [main] INFO  org.apache.catalina.core.AprLifecycleListener - OpenSSL successfully initialized [OpenSSL 1.1.1c  28 May 2019]
2020-10-22 16:38 [main] INFO  org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2020-10-22 16:38 [main] INFO  org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1422 ms
2020-10-22 16:38 [main] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
2020-10-22 16:38 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8088"]
2020-10-22 16:38 [main] INFO  org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8088 (http) with context path ''
2020-10-22 16:38 [main] INFO  com.example.demo.DockerComposeTestApplication - Started DockerComposeTestApplication in 2.841 seconds (JVM running for 3.257)

备注:发现使用这个默认不用配置pom依赖,最新的spring-boot-starter-web中已经集成了。

总结:启动一个项目,直接将logback-spring.xml文件复制到resources目录下就可以实现日志文件记录。非常方便。

学习资料:Java进阶视频资源

二、进阶配置:

分类logback.xml配置:

日志配置到d盘了

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 日志存放路径 --><property name="log.path" value="d:/logback" /><!-- 日志输出格式 --><property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /><!-- 控制台输出 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${log.pattern}</pattern></encoder></appender><!-- 系统日志输出 --><appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/sys-info.log</file><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 60天 --><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 只会打印debug不会有info日志-->
<!--            <level>DEBUG</level>--><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/sys-error.log</file><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 60天 --><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>ERROR</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><!-- 用户访问日志输出  --><appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/sys-user.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 按天回滚 daily --><fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 60天 --><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder></appender><!-- 系统模块日志级别控制  --><logger name="com.example" level="debug" /><!-- Spring日志级别控制  --><logger name="org.springframework" level="warn" /><root level="info"><appender-ref ref="console" /></root><!--系统操作日志--><root level="info"><appender-ref ref="file_info" /><appender-ref ref="file_error" /></root><!--系统用户操作日志--><logger name="sys-user" level="info"><appender-ref ref="sys-user"/></logger>
</configuration>

还可以在application.yml中配置

# 日志配置
logging:level:com.example: infoorg.springframework: warn

配置info就只有info以上日志才会输出

如果配置 com.example: debug ,那么我们项目com.example包里面debug以上的日志也会输出。

推荐:

主流Java进阶技术(学习资料分享)

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

Springboot配置保存日志文件相关推荐

  1. springboot配置打印日志文件

    在yml文件中增加以下配置 logging:file: ./logs/lenosp-log.loglevel:com.len.mapper: debug log4j定义了8个级别的log(除去OFF和 ...

  2. 【CyberSecurityLearning 31】Linux网络信息查看与配置、日志文件的管理、备份及日志服务器的搭建

    目录 网络地址配置 1.确认系统的网卡信息和ip地址 2.关闭networkmanager服务 3.配置网络地址 通过配置文件配置网络地址(让配置的IP地址永久生效) 实验: 日志文件的管理与应急分析 ...

  3. 【Spring】SpringBoot 配置 log4j2 日志

    1. 概述 官方参考文档:Log4j Apache Log4j2 是对原先的 Log4j 项目的升级版本,参考了 logback 的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升. 异常 ...

  4. SpringBoot配置Logback日志详解

    正文 Spring Boot默认集成了Logback,可以开箱即用,非常方便.因为spring-boot-starter-logging是Logback的日志实现,而Spring Boot启动项spr ...

  5. Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件...

    关注finddreams,一起分享,一起进步!http://blog.csdn.net/finddreams/article/details/45569089    在开发中,我们常常用打印log的方 ...

  6. PHP-FPM.CONF配置:日志文件、端口设置、动态静态选择设置

    在php-fpm.conf文件中添加如下配置 pm.max_children = 100 pm.start_servers = 30 pm.min_spare_servers = 20 pm.max_ ...

  7. SpringBoot配置logback日志 (六)

    Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-access.logback-c ...

  8. python保存日志文件

    文章目录 切换系统输出流 logging模块输出日志 更实用的方法(一次实现,全局调用) 一般写大型程序的时候,程序运行时间都比较长,将一些必要的输出保存到日志文件中是很有必要的.下面提供两种将输出保 ...

  9. mysql中配置general_log日志文件

    首先用如下命令查看日志是否开启: show variables like 'general%'; OFF表示未开启. 用如下命令开启日志: set global general_log=1; 再重新查 ...

最新文章

  1. WebService就是这么简单
  2. 《面向对象分析与设计》读书笔记——第一章 复杂性
  3. linux 内核 netfilter 网络过滤模块 (2)-conntrack
  4. SQL记录-PLSQL异常
  5. 大数据翻页_【干货】大数据翻页的难点和技巧
  6. Ajax post HTML 405,Web API Ajax POST向返回 405方法不允许_jquery_开发99编程知识库
  7. d630无电池升级bios_太重要,你想要的电脑BIOS全面解读与设置(下)
  8. wordpress插件-WP Rocket3.8.8与Rocket3.9.1双版本/火箭缓存插件免授权汉化版
  9. LeetCode206 | Reverse Linked List (Easy)
  10. python3迭代器和可迭代对象,Python3学习(8)--迭代,可迭代的和迭代器
  11. 解析xml_QT开发(四十四)——流方法解析XML
  12. java集合类程序代码_Java集合类源代码分析二:ArrayList(1)
  13. 逆向:Windows消息钩取
  14. allshare cast安卓版下载_PanDownload 安卓手机版,解决百度网盘下载速度慢
  15. 软考信息安全工程师知识总结
  16. js 微信小程序根据身份证号计算年龄
  17. 计算机税率函数,2018最新按5000元个税Excel计算公式,帮你整理齐了!
  18. MIT oracle ma 信号线,美国 MIT Oracle MA-X Phono唱臂线 独家Multipole技术
  19. win10 你没有足够的权限执行此操作。
  20. 微信小程序:从小程序打开H5页面

热门文章

  1. 宝宝专业智力测试软件,希-内学习能力测验软件 - 智力评估软件 - 唯普诺心理,心理测评系统,心理测评软件,婴幼儿智能发育,心理软件...
  2. 巴比特 | 元宇宙每日必读:中国银行公布元宇宙支付相关专利,阿里申请多个淘宝元宇宙商标,元宇宙商标、专利竞争加速?...
  3. 基于jsp+ssm的旅游活动报名系统
  4. XAG一键并轨XRP媒体报道
  5. Java案例:因数平方和
  6. Ember 翻译——教程十:服务和功能
  7. 轩辕剑--资料集(一)
  8. w ndows7启动项怎么关,(让Wndows7让系统“飞”起来二级精华.doc
  9. 什么是内网、公网和NAT?
  10. 南京邮电大学c语言实验报告3v2,南京邮电大学操作系统实验报告