Springboot配置保存日志文件 以你之姓@ 2022-09-14 00:22 229阅读 0赞 ### ***点击关注公众号,利用****碎片时间学习*** ### ### *来源:blog.csdn.net/gaopinqiang/* ### ### *article/details/109228641* ### springboot日志配置: > springboot默认日志是打印再console中的,不会保存在文件中。我们项目上线肯定要保存日志用于分析的。 ### 一、使用xml配置日志保存(并不需要pom配置slf4j依赖,starter里面已经配置了依赖了) ### **1、在项目的resources目录下创建一个【logback-spring.xml】日志配置文件** 名称只要是一 logback开头就行,测试使用log.xml并不会生成日志。合法名称:`logback.xml` 、`logback-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进阶视频资源][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: info org.springframework: warn 配置info就只有info以上日志才会输出 如果配置 `com.example: debug` ,那么我们项目`com.example`包里面debug以上的日志也会输出。 **推荐:** [主流Java进阶技术(学习资料分享)][Java 1] ![f24351d2be339f2f28a1e5e73e6ecb7d.png][] PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下**“在看”**,加个**“星标”**,这样每次新文章推送才会第一时间出现在你的订阅列表里。点**“在看”**支持我们吧! [Java]: http://mp.weixin.qq.com/s?__biz=MzU2MTI4MjI0MQ==&mid=2247506972&idx=2&sn=790959d9ee2b74e0d0c8a0a5395bc665&chksm=fc79b1b2cb0e38a498933a034926df45b51524b044762583488d498ae2112c06cf35d412fb3b&scene=21#wechat_redirect [Java 1]: https://blog.csdn.net/qq_15175765/article/details/78435641 [f24351d2be339f2f28a1e5e73e6ecb7d.png]: /images/20220828/95054317d3d24645ae99666482d3e401.png
相关 springboot 项目日志配置文件详解 spring boot 项目指定 日志配置文件 在Spring Boot项目中,可以通过在`application.properties`或`application.ym ゞ 浴缸里的玫瑰/ 2024年03月24日 18:54/ 0 赞/ 21 阅读
相关 SpringBoot——》配置logback日志文件 > 推荐链接: > [总结——》【Java】][Java] > [总结——》【Mysql】][Mysql] > [总结——》【Redis】][Redis] > 快来打我*/ 2024年02月18日 13:29/ 0 赞/ 17 阅读
相关 SpringBoot 配置文件和日志文件 目录 一、SpringBoot配置文件 配置文件的格式 .properties配置文件格式 .yml配置文件格式 .properties 与 .yml的区别 配 妖狐艹你老母/ 2023年10月10日 23:39/ 0 赞/ 10 阅读
相关 SpringBoot(项目创建使用+配置文件+日志文件) 目录 1. Spring Boot 项目创建 2. 写一个 Hello World 并运行 3. 配置文件的作用及格式 4. properties 配置文件的基本语法 Myth丶恋晨/ 2023年09月25日 14:01/ 0 赞/ 90 阅读
相关 springBoot日志配置 概述 在计算机的世界里,日志的重要性不言而喻。系统日志,应用日志等都可以帮我们更快的定位的计算机问题出现在哪里。而springBoot默认使用LogBack日志,当然如 ╰半橙微兮°/ 2022年11月06日 00:52/ 0 赞/ 188 阅读
相关 springboot 日志按照年月日保存 在resouces添加文件logback-spring.xml <?xml version="1.0" encoding="UTF-8"?> <configu 深碍√TFBOYSˉ_/ 2022年11月02日 11:44/ 0 赞/ 168 阅读
相关 Springboot配置保存日志文件 点击关注公众号,利用碎片时间学习 来源:blog.csdn.net/gaopinqiang/ article/details/109228641 spring 以你之姓@/ 2022年09月14日 00:22/ 0 赞/ 230 阅读
相关 SpringBoot之yml文件配置、日志文件配置 Application.yml配置: app: instance: code: portal profile: dev 我不是女神ヾ/ 2022年05月04日 03:27/ 0 赞/ 1104 阅读
相关 4、SpringBoot之配置日志文件 该节主要学习怎么使用SpringBoot中的日志 项目地址:https://github.com/Chakid/SpringBoot-example 市面上的日志框 不念不忘少年蓝@/ 2022年01月11日 04:17/ 0 赞/ 395 阅读
还没有评论,来说两句吧...