广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot项目中怎么保存控制台日志
  • 569
分享到

SpringBoot项目中怎么保存控制台日志

2023-06-08 05:06:59 569人浏览 独家记忆
摘要

这篇文章主要介绍“SpringBoot项目中怎么保存控制台日志”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springBoot项目中怎么保存控制台日志”文章能帮助大家解决问题。SpringBoot

这篇文章主要介绍“SpringBoot项目中怎么保存控制台日志”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springBoot项目中怎么保存控制台日志”文章能帮助大家解决问题。

SpringBoot 控制台日志的保存配置

情景:SpringBoot项目中需要把控制台日志保存下来。

实现方法:

1.在配置文件application-prod.yml

配置如下:

logging:  config: classpath:logback-spring-prod.xml

2.logback-spring-prod.xml

这个文件是记录控制台打印日志保存的路径配置如下:

<?xml version="1.0" encoding="UTF-8"?> <!-- 分级别异步文件日志输出配置 --><configuration>    <!-- 日志级别 -->    <property name="logLevel" value="INFO"></property>    <!-- 日志地址 -->    <property name="logPath" value="/usr/server/shop/logs/"></property>    <property name="logPathDebug" value="/usr/server/shop/logs/debug/"></property>    <property name="logPathInfo" value="/usr/server/shop/logs/info/"></property>    <property name="logPathWarn" value="/usr/server/shop/logs/warn/"></property>    <property name="logPathError" value="/usr/server/shop/logs/error/"></property>    <!-- 最大保存时间 -->    <property name="maxHistory" value="30"/>    <!-- 异步缓冲队列的深度,该值会影响性能.默认值为256 -->    <property name="queueSize" value="512"></property>    <!--日志文件名前缀-->    <property name="name" value="shop_prod"></property>     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">        <encoder>            <pattern>%black(%contextName -) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{60}) - %gray(%msg%n)</pattern>        </encoder>    </appender>     <appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">        <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>DEBUG</level>            <onMatch>ACCEPT</onMatch>            <onMismatch>DENY</onMismatch>        </filter>        <file>${logPathDebug}/${name}_debug.log</file>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <fileNamePattern>${logPathDebug}/${name}_debug.log.%d{yyyy-MM-dd}.%i.log</fileNamePattern>            <maxHistory>${maxHistory}</maxHistory>            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                <maxFileSize>50MB</maxFileSize>            </timeBasedFileNamingAndTriggeringPolicy>        </rollingPolicy>        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>        </encoder>    </appender>     <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">        <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>INFO</level>            <onMatch>ACCEPT</onMatch>            <onMismatch>DENY</onMismatch>        </filter>        <file>${logPathInfo}/${name}_info.log</file>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <fileNamePattern>${logPathInfo}/${name}_info.log.%d{yyyy-MM-dd}.%i.log</fileNamePattern>            <maxHistory>${maxHistory}</maxHistory>            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                <maxFileSize>50MB</maxFileSize>            </timeBasedFileNamingAndTriggeringPolicy>        </rollingPolicy>        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>        </encoder>    </appender>     <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">        <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>WARN</level>            <onMatch>ACCEPT</onMatch>            <onMismatch>DENY</onMismatch>        </filter>        <file>${logPathWarn}/${name}_warn.log</file>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <fileNamePattern>${logPathWarn}/${name}_warn.log.%d{yyyy-MM-dd}.%i.log</fileNamePattern>            <maxHistory>${maxHistory}</maxHistory>            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                <maxFileSize>50MB</maxFileSize>            </timeBasedFileNamingAndTriggeringPolicy>        </rollingPolicy>        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>        </encoder>    </appender>     <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">        <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>ERROR</level>            <onMatch>ACCEPT</onMatch>            <onMismatch>DENY</onMismatch>        </filter>        <file>${logPathError}/${name}_error.log</file>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <fileNamePattern>${logPathError}/${name}_error.log.%d{yyyy-MM-dd}.%i.log</fileNamePattern>            <maxHistory>${maxHistory}</maxHistory>            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                <maxFileSize>50MB</maxFileSize>            </timeBasedFileNamingAndTriggeringPolicy>        </rollingPolicy>        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>        </encoder>    </appender>     <appender name="ASYNC_LOG_DEBUG" class="ch.qos.logback.classic.AsyncAppender">        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->        <discardingThreshold>0</discardingThreshold>        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->        <queueSize>${queueSize}</queueSize>        <appender-ref ref="FILE_DEBUG"/>    </appender>     <appender name="ASYNC_LOG_INFO" class="ch.qos.logback.classic.AsyncAppender">        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->        <discardingThreshold>0</discardingThreshold>        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->        <queueSize>${queueSize}</queueSize>        <appender-ref ref="FILE_INFO"/>    </appender>     <appender name="ASYNC_LOG_WARN" class="ch.qos.logback.classic.AsyncAppender">        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->        <discardingThreshold>0</discardingThreshold>        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->        <queueSize>${queueSize}</queueSize>        <appender-ref ref="FILE_WARN"/>    </appender>     <appender name="ASYNC_LOG_ERROR" class="ch.qos.logback.classic.AsyncAppender">        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->        <discardingThreshold>0</discardingThreshold>        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->        <queueSize>${queueSize}</queueSize>        <appender-ref ref="FILE_ERROR"/>    </appender>     <root level="${logLevel}">        <!-- appender referenced after it is defined -->        <appender-ref ref="STDOUT"/>        <appender-ref ref="ASYNC_LOG_DEBUG"/>        <appender-ref ref="ASYNC_LOG_INFO"/>        <appender-ref ref="ASYNC_LOG_WARN"/>        <appender-ref ref="ASYNC_LOG_ERROR"/>    </root> </configuration>

注意:

<property name="logPath" value="/usr/server/shop/logs/"></property>

中日志存放的路径在/usr/server/shop/logs/下存放。

SpringBoot项目怎么保存服务的运行时日志

这个问题相对很简单,只需要完成两个步骤

配置log4j输出日志的文件

在pom中需要引用lombok依赖,版本跟随你的springboot夫版本即可

<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional></dependency>
<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="60 seconds"debug="false"><contextName>StudentContext</contextName><property name="log.path" value="./logs" /><!--输出到控制台 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{76}.%M\(%line\) - %msg%n</pattern><charset>UTF-8</charset></encoder></appender><!-- 全部日志 --><appender name="all" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.path}/student/student.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{76}.%M\(%line\) - %msg%n</pattern><charset>UTF-8</charset></encoder></appender><!-- 输出到warn --><appender name="warn" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.path}/student/student.warn.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{76}.%M\(%line\) - %msg%n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印WARN日志 --><level>WARN</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 输出到error --><appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.path}/student/student.error.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{76}.%M\(%line\) - %msg%n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印ERROR日志 --><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><root level="info"><appender-ref ref="console" /><appender-ref ref="all" /><appender-ref ref="warn" /><appender-ref ref="error" /></root></configuration>

log4j输出日志的文件,将其放在resources下即可,注意fileNamePattern这个标签中的东西换成标识你微服务作用的,比如我写的学生管理系统,所以用的是student

在application指定此配置文件的位置

logging:  level:    com.netflix.discovery.shared.resolver.aws.ConfiGClusterResolver: WARN  config: classpath:logback-common.xml

关于“SpringBoot项目中怎么保存控制台日志”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: SpringBoot项目中怎么保存控制台日志

本文链接: https://www.lsjlt.com/news/251887.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot项目中怎么保存控制台日志
    这篇文章主要介绍“SpringBoot项目中怎么保存控制台日志”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot项目中怎么保存控制台日志”文章能帮助大家解决问题。SpringBoot...
    99+
    2023-06-08
  • SpringBoot项目中控制台日志的保存配置操作
    SpringBoot 控制台日志的保存配置 情景:SpringBoot项目中需要把控制台日志保存下来。 实现方法: 1.在配置文件application-prod.yml 配置如下:...
    99+
    2022-11-12
  • 怎么在Springboot项目中保存本地系统日志文件
    今天就跟大家聊聊有关怎么在Springboot项目中保存本地系统日志文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 如下是集成,按步骤来:在项目的resources目录...
    99+
    2023-06-14
  • SpringBoot中logback日志怎么保存到mongoDB
    本篇内容介绍了“SpringBoot中logback日志怎么保存到mongoDB”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!自定义Appe...
    99+
    2023-06-08
  • Springboot项目保存本地系统日志文件的实现方法
    背景:我们都知道springboot默认日志是打印在控制台中的,不会以文件的形式进行保存。那么日后系统上线肯定是有需要对日志进行定位分析问题的,那么如何实现将控制台输出的日志保存起来...
    99+
    2022-11-12
  • mybatis怎么打印日志到控制台
    要打印MyBatis的日志到控制台,可以按照以下步骤进行设置: 在你的项目中找到MyBatis的配置文件(一般为`mybatis-...
    99+
    2023-10-25
    mybatis
  • 怎么在Python项目中引入日志
    本篇文章为大家展示了怎么在Python项目中引入日志,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Logging模块的使用简单使用Logging 模块提供了一系列便利的函数它们分别是 debug()...
    99+
    2023-06-15
  • Java项目中怎么打印错误日志
    这篇文章将为大家详细讲解有关Java项目中怎么打印错误日志,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.上层系统引入的非法参数。对于非法参数引入的错误, 可以通过参数校验和前置条件校验来...
    99+
    2023-06-16
  • SpringBoot项目中怎么使用缓存Cache
    本文小编为大家详细介绍“SpringBoot项目中怎么使用缓存Cache”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot项目中怎么使用缓存Cache”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-06
  • Java中怎么实现日志缓存机制
    今天就跟大家聊聊有关Java中怎么实现日志缓存机制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java 日志机制的介绍Java 日志机制在很多文章中都有介绍,为了便于后面文章部分的...
    99+
    2023-06-17
  • 在SSM项目中怎么对LOG4J日志进行配置
    在SSM项目中怎么对LOG4J日志进行配置?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在pom文件中添加依赖 . <!--Log4j2配置--> ...
    99+
    2023-05-31
    ssm log4j 目中
  • 在Go语言项目中怎么使用Zap日志库
    本篇内容介绍了“在Go语言项目中怎么使用Zap日志库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Go语言项目中使用Zap日志库介绍在许多...
    99+
    2023-06-30
  • 怎么在项目中应用SpringSecurity权限控制
    本篇内容主要讲解“怎么在项目中应用SpringSecurity权限控制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在项目中应用SpringSecurity权限控制”吧!要进行认证和授权需要...
    99+
    2023-07-02
  • 怎么在springboot中将sql语句打印到控制台
    本篇文章为大家展示了怎么在springboot中将sql语句打印到控制台,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.简介每当写完持久化语句时肯定免不了要查漏补缺一波。这里就可以将执行的sql打...
    99+
    2023-06-15
  • Android项目中怎么使用setTag保存多种值
    这篇文章给大家介绍Android项目中怎么使用setTag保存多种值,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。setTag是android的view类中很有用的一个方法,可以用它来给空间附加一些信息,在很多场合下都...
    99+
    2023-05-31
    android settag roi
  • JAVA项目中怎么实现一个通用日志记录功能
    今天就跟大家聊聊有关JAVA项目中怎么实现一个通用日志记录功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用Aop记录操作日志添加Aoppublic class LogAopHa...
    99+
    2023-05-31
    java ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作