返回顶部
首页 > 资讯 > 后端开发 > Python >Springboot项目保存本地系统日志文件的实现方法
  • 313
分享到

Springboot项目保存本地系统日志文件的实现方法

2024-04-02 19:04:59 313人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

背景:我们都知道SpringBoot默认日志是打印在控制台中的,不会以文件的形式进行保存。那么日后系统上线肯定是有需要对日志进行定位分析问题的,那么如何实现将控制台输出的日志保存起来

背景:我们都知道SpringBoot默认日志是打印在控制台中的,不会以文件的形式进行保存。那么日后系统上线肯定是有需要对日志进行定位分析问题的,那么如何实现将控制台输出的日志保存起来?

话不多说,实际效果如下,如果是你预期的那样,咱们接着往下看。

如果最后觉得有所帮助,请不要吝啬你的赞,直接pia的点亮就完事了啦,可好;

 如下是集成,按步骤来:

1、在项目的resources目录下创建一个名为logback-spring.xml的日志配置文件,配置文件名最好跟我一样;

2、编写xml文件内容:

code中每句都给出了注释,方便你们理解。


<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <!-- 引入默认得配置文件 -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
 
    <!-- 模块名标识日志名称 -->
    <springProperty scope="context" name="springAppName" source="spring.application.name"/>
    <!-- info日志单文件大小限制 -->
    <springProperty scope="context" name="logback.fileInfoLog.maxFileSize" source="logback.fileInfoLog.maxFileSize" defaultValue="200MB" />
    <!-- info日志最大保留时长单位天 -->
    <springProperty scope="context" name="logback.fileInfoLog.maxHistory" source="logback.fileInfoLog.maxHistory" defaultValue="15" />
    <!-- info日志文件总大小,超过该大小,旧得即将删除 -->
    <springProperty scope="context" name="logback.fileInfoLog.totalSizeCap" source="logback.fileInfoLog.totalSizeCap" defaultValue="100GB" />
 
    <!-- error日志单文件大小限制 -->
    <springProperty scope="context" name="logback.fileErrorLog.maxFileSize" source="logback.fileErrorLog.maxFileSize" defaultValue="200MB" />
    <!-- error日志最大保留时长单位天 -->
    <springProperty scope="context" name="logback.fileErrorLog.maxHistory" source="logback.fileErrorLog.maxHistory" defaultValue="15" />
    <!-- error日志文件总大小,超过该大小,旧得即将删除 -->
    <springProperty scope="context" name="logback.fileErrorLog.totalSizeCap" source="logback.fileErrorLog.totalSizeCap" defaultValue="100GB" />
 
    <!-- Http日志单文件大小限制 -->
    <springProperty scope="context" name="logback.fileHttpLog.maxFileSize" source="logback.fileHttpLog.maxFileSize" defaultValue="200MB" />
    <!-- http日志最大保留时长单位天 -->
    <springProperty scope="context" name="logback.fileHttpLog.maxHistory" source="logback.fileHttpLog.maxHistory" defaultValue="15" />
    <!-- http日志文件总大小,超过该大小,旧得即将删除 -->
    <springProperty scope="context" name="logback.fileHttpLog.totalSizeCap" source="logback.fileHttpLog.totalSizeCap" defaultValue="100GB" />
    <!-- 日志目录 -->
    <springProperty scope="context" name="logback.rootDir" source="logback.rootDir" defaultValue="logs"/>
    <!-- 控制台输出得日志格式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_Word:-%wEx}"/>
    <!-- 日志文件输出得日志格式 -->
    <property name="FILE_LOG_PATTERN"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %t [%c:%L]-%m%n"/>
    <!-- 控制台输出 -->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </layout>
    </appender>
    <!-- info日志得设定 -->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${logback.rootDir}/${springAppName}.log</file>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy" >
            <!--路径-->
            <fileNamePattern>${logback.rootDir}/%d{yyyy-MM,aux}/%d{yyyy-MM-dd,aux}/${springAppName}-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <maxFileSize>${logback.fileInfoLog.maxFileSize}</maxFileSize>
            <maxHistory>${logback.fileInfoLog.maxHistory}</maxHistory>
            <totalSizeCap>${logback.fileInfoLog.totalSizeCap}</totalSizeCap>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
    </appender>
 
    <!-- 错误日志 -->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${logback.rootDir}/${springAppName}-error.log</file>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy" >
            <!--路径-->
            <fileNamePattern>${logback.rootDir}/%d{yyyy-MM,aux}/%d{yyyy-MM-dd,aux}/${springAppName}-error-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <maxFileSize>${logback.fileErrorLog.maxFileSize}</maxFileSize>
            <maxHistory>${logback.fileErrorLog.maxHistory}</maxHistory>
            <totalSizeCap>${logback.fileErrorLog.totalSizeCap}</totalSizeCap>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
    </appender>
 
    <!-- http日志 -->
    <appender name="httpInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %m%n</pattern>
        </encoder>
        <file>${logback.rootDir}/${springAppName}-http.log</file>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>${logback.rootDir}/%d{yyyy-MM,aux}/%d{yyyy-MM-dd,aux}/${springAppName}-http-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <maxFileSize>${logback.fileHttpLog.maxFileSize}</maxFileSize>
            <maxHistory>${logback.fileHttpLog.maxHistory}</maxHistory>
            <totalSizeCap>${logback.fileHttpLog.totalSizeCap}</totalSizeCap>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
    </appender>
 
    <appender name="ASYNC_consoleLog" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="consoleLog"/>
    </appender>
    <appender name="ASYNC_fileInfoLog" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="fileInfoLog"/>
    </appender>
    <appender name="ASYNC_fileErrorLog" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="fileErrorLog"/>
    </appender>
    <appender name="ASYNC_httpInfoLog" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="httpInfoLog"/>
    </appender>
 
    <root level="info">
        <appender-ref ref="ASYNC_consoleLog" />
        <appender-ref ref="ASYNC_fileInfoLog" />
        <appender-ref ref="ASYNC_fileErrorLog" />
    </root>
    <logger name="log_http" additivity="false" level="INFO">
        <appender-ref ref="ASYNC_httpInfoLog"/>
    </logger>
 
</configuration>

3、配置日志配置中所提到的springAppName;

4、使用这个默认不用配置pom依赖,最新的spring-boot-starter-WEB中已经集成了。如下,重启下项目就能自动生成日志文件了,而且是实时写入的,控制台输出什么,立马就更新进到该xxx.log里头。

记得,配置日志完后,记得刷新下Maven或者关闭下项目重新打开,以免误导大家以为日志配置没用。


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

另外:

想要在控制台打印sql,如下:

在配置文件中,加上这句就好了; 


###sql打印
logging.level.com.system.xiaoma.mapper=debug

到此这篇关于Springboot项目保存本地系统日志文件的实现方法的文章就介绍到这了,更多相关Springboot保存本地系统日志文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Springboot项目保存本地系统日志文件的实现方法

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

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

猜你喜欢
  • Springboot项目保存本地系统日志文件的实现方法
    背景:我们都知道springboot默认日志是打印在控制台中的,不会以文件的形式进行保存。那么日后系统上线肯定是有需要对日志进行定位分析问题的,那么如何实现将控制台输出的日志保存起来...
    99+
    2024-04-02
  • 怎么在Springboot项目中保存本地系统日志文件
    今天就跟大家聊聊有关怎么在Springboot项目中保存本地系统日志文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 如下是集成,按步骤来:在项目的resources目录...
    99+
    2023-06-14
  • springboot项目配置logback日志系统的实现
    记录springboot项目配置logback日志文件管理: logback依赖jar包 SpringBoot项目配置logback理论上需要添加logback-classic依赖j...
    99+
    2024-04-02
  • springboot项目配置logback日志系统的实现示例
    这篇文章主要介绍了springboot项目配置logback日志系统的实现示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。记录springboot项目配置logback日志...
    99+
    2023-06-14
  • Springboot项目优雅地处理日志的方法详解
    如上图,每天会生成一个新的日志文件,然后日志进行分类,我这里只对error和info进行分类。 怎么做呢? 首先,在resource目录创建一个新文件,取名logback-spr...
    99+
    2024-04-02
  • Python保存MongoDB上的文件到本地的方法
    本文实例讲述了Python保存MongoDB上的文件到本地的方法。分享给大家供大家参考,具体如下: MongoDB上的文档通过GridFS来操作,Python也可以通过pymongo连接MongoDB数据库...
    99+
    2022-06-04
    文件 方法 Python
  • Android项目中引用本地aar文件的方法
    随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好。针对Android开发最常见的就是A...
    99+
    2022-06-06
    方法 Android
  • 关于实训项目文件保护系统的总结
           此次实训项目的核心内容是文件的保护系统,核心是对文件的加解密。开发之初,本着边做边学习的想法,我们选了毫无基础的python作为开发语言,对语法的不熟悉成为了我们最大的障碍。我们最终所实现的目标有如下几个:简单的用户管理、文...
    99+
    2023-01-30
    实训 文件 项目
  • centos修改dhcpd日志实现不记入系统日志的方法
    小编给大家分享一下centos修改dhcpd日志实现不记入系统日志的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!编辑dhcp服务配置文件vim /etc/dhcp/dhcpd.conf   在末尾...
    99+
    2023-06-10
  • android下载文件保存到本地的方法是什么
    在Android中,可以使用以下代码将文件下载并保存到本地:1. 首先,需要在AndroidManifest.xml文件中添加以下权...
    99+
    2023-05-30
    android下载文件 android
  • Java开发者必备技能:Windows系统下文件日志的实现方法
    在Java开发中,我们经常需要记录一些运行时的信息,以方便后续调试和排错。而文件日志是常用的一种记录方式。在Windows系统下,文件日志的实现方法有很多,本文将介绍一种简单实用的方法。 一、使用log4j实现文件日志 log4j是一个常...
    99+
    2023-09-24
    windows 文件 日志
  • Linux系统中使用logrotate来管理日志文件的方法
    本篇内容主要讲解“Linux系统中使用logrotate来管理日志文件的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统中使用logrotate来管理日志文件的方法”吧!在Deb...
    99+
    2023-06-13
  • 如何将S/4HANA系统存储的图片文件用Java程序保存到本地
    这期内容当中小编将会给大家带来有关如何将S/4HANA系统存储的图片文件用Java程序保存到本地,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。我在S/4HANA的事务码MM02里为Material维护图片...
    99+
    2023-06-04
  • Win8.1系统录音文件保存在哪?Win8.1查找录音机录音文件目录的方法
      如果您没有改变过默认的路径,您可以尝试在该文件夹中查看:   默认路径:C:Users***(用户名)AppDataLocalPackagesMicrosoft.WindowsSoundRecorde...
    99+
    2022-06-04
    文件 录音机 目录
  • vue项目打包之后在本地运行的实现方法
    目录vue项目打包后在本地运行项目打包后无法运行的问题vue项目打包后在本地运行 vue打包之后如果直接启动index.html文件的话就会出现报错 Refused to apply...
    99+
    2024-04-02
  • 在Java项目中实现文件上传的方法
    在Java项目中实现文件上传的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.jspsmartupload这个组件用起来是挺方便的,不过就是只适合小文件上传,如果大文件上...
    99+
    2023-05-31
    java ava 目中
  • 在Win8系统中修改hosts文件无法保存的解决方法
      Windows8发布了,相信不少人已经拿来尝鲜了。笔者也把家中的电脑也安装了Windows8,从家中网络访问公司后台的时后,需要修改hosts,但发现无法保存。可能一些尝鲜的用户在需要在家完成「残I」的...
    99+
    2022-06-04
    解决方法 文件 系统
  • Python实现统计文本文件字数的方法
    本文实例讲述了Python实现统计文本文件字数的方法。分享给大家供大家参考,具体如下: 统计文本文件的字数,从当前目录下的file.txt取文件 # -*- coding: GBK -*- import...
    99+
    2022-06-04
    文本文件 字数 方法
  • python实现搜索本地文件信息写入文件的方法
    本文实例讲述了python实现搜索本地文件信息写入文件的方法。分享给大家供大家参考,具体如下: 主要功能: 在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件,然后把搜索出来的信息...
    99+
    2022-06-04
    本地文件 文件 方法
  • 房地产项目管理系统的重要性及其实现方式
    房地产项目管理系统是现代房地产行业中必不可少的工具之一,它可以帮助房地产开发商和物业管理者更好地管理项目的各个阶段,包括规划、设计、施工、销售和后期维护等。本文将探讨房地产项目管理系统的重要性,并介绍其实现方式。 详细说明:1. 项目规划阶...
    99+
    2024-01-14
    管理系统 房地产项目 重要性
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作