您现在的位置是:首页 > 后台技术 > JavaJava
springboot实现不同业务的日志打印到不同的文件中(图文)
第十三双眼睛2019-08-08【Java】人已围观
简介这几天有个项目的日志信息比较多,需要把不同业务的日志打印到不同的文件中去,今天在公司搞了很久都没搞定,晚上回来搞,终于搞定了,记录一下。
项目发布到线上,很难保证不出问题,一旦出了问题,就得看日志来解决,但是如果,所有的日志都写在一个文件中,这个文件会非常大,不利于查找,因此,需要把不同业务的日志打印到不同的日志文件中去,这样,文件小,而且业务分开,便于排错。
1准备一个配置文件logback.xml,其中内容如下:
2写一个测试文件
再电脑中的对应位置出现了这三个文件夹

下面是info里面的内容,只有info日志输出

下面是request里面的内容,只有request日志输出

下面是error里面的日志输出,只有

成功了。
1准备一个配置文件logback.xml,其中内容如下:
<?xml version="1.0" encoding="UTF-8" ?> <configuration> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </layout> </appender> <appender name="request" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>E://log/request/request.log</File> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>%msg%n</pattern> <!--<charset>UTF-8</charset>--> </encoder> <!--滚动策略--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>E://log/request/request.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>4</maxHistory> </rollingPolicy> </appender> <!--根据日志级别分离日志,分别输出到不同的文件--> <appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>E://log/info/info.log</File> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>%msg%n</pattern> <!--<charset>UTF-8</charset>--> </encoder> <!--滚动策略--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>E://log/info/info.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>4</maxHistory> </rollingPolicy> </appender> <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>E://log/error/error.log</File> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>%msg%n</pattern> <charset>UTF-8</charset> </encoder> <!--滚动策略--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>E://log/error/error.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>4</maxHistory> </rollingPolicy> </appender> <logger name="requestLogger" additivity="false" level="INFO"> <appender-ref ref="request"/> </logger> <logger name="infoLogger" additivity="false" level="INFO"> <appender-ref ref="info"/> </logger> <logger name="errorLogger" additivity="false" level="ERROR"> <appender-ref ref="error"/> </logger> <root level="DEBUG"> <appender-ref ref="consoleLog"/> </root> </configuration> |
package com.xinchen.springboot1.schedue; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class Schedue { public Logger infoLogger = LoggerFactory.getLogger("infoLogger"); public Logger requestLogger = LoggerFactory.getLogger("requestLogger"); public Logger errorLogger = LoggerFactory.getLogger("errorLogger"); @Scheduled(cron = "0 0/1 * * * *") public void test() { requestLogger.debug("requestLogger.debug"); requestLogger.info("requestLogger.info"); requestLogger.error("requestLogger.error"); infoLogger.debug("infoLogger.debug"); infoLogger.info("infoLogger.info"); infoLogger.error("infoLogger.error"); errorLogger.debug("errorLogger.debug"); errorLogger.info("errorLogger.info"); errorLogger.error("errorLogger.error"); } } |

下面是info里面的内容,只有info日志输出

下面是request里面的内容,只有request日志输出

下面是error里面的日志输出,只有

成功了。
Tags:springboot 日志
很赞哦! ()
下一篇:JAVA空指针的各种情况
随机图文
JAVA解析XML
记录一下java解析xml,以便以后用时快速查找ActiveMQ学习记录(图文)
昨天用了1个下午的时间学习了ActiveMQ东西,为了以后要用的时候方便查询,记录一下。java 实现MQTT客户端(图文)
前端时间,总结了以下java使用MQTT客户端的使用方法,特地记录一下,方便以后使用微服务springcloud(图文)
微服务就是由一系列围绕自己业务开发的微小服务构成,他们独立部署运行在自己的进程里,基于分布式的管理 微服务是一种架构方式: 将单一应用基于业务拆分多个微小服务,他们独立运行 独立部署 每个服务运行在自己计算机进程里面 对于这些服务都是分布式管理。 这种架构是将单个的整体应用程序分割成更小的项目关联的独立的服务。一个服务通常实现一组独立的特性或功能,包含自己的业务逻辑和适配器。各个微服务之间的关联通过暴露api来实现(http)。这些独立的微服务不需要部署在同一个虚拟机,同一个系统和同一个应用服务器中