news 2026/4/15 13:50:56

Java项目日志持久化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java项目日志持久化

前言

  • 当我们在服务器上运行Java的时候,发布新功能或者重启容器的时候,对于已有的日志会直接丢失,这很不方便我们排查以往的bug。所以我们需要把日志收集起来,方便我们查看以往的日志情况。

正文

  • 首先,在 resources 文件夹下添加 logback-spring.xml 文件,内容如下,这是最基本的,可以自己添加内容(如彩色日志等,这里就不做演示了,只演示最基本的。)我本地激活的是text环境,所以我把test的位置放在了当前目录下,各位可以按照自己的情况修改value的值即可
<?xml version="1.0" encoding="UTF-8"?><configuration><!-- 开发环境:使用用户主目录下的 logs 文件夹 --><springProfilename="dev"><propertyname="LOG_PATH"value="${user.home}/logs/travel-echo"/></springProfile><!-- 生产环境:容器内标准路径 --><springProfilename="prod"><propertyname="LOG_PATH"value="/app/logs"/></springProfile><!-- 测试环境:容器内标准路径 --><springProfilename="test"><propertyname="LOG_PATH"value="./logs"/></springProfile><!-- 文件输出 --><appendername="FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_PATH}/app.log</file><rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 按天滚动,保留180天 --><fileNamePattern>${LOG_PATH}/app.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>180</maxHistory><totalSizeCap>10GB</totalSizeCap></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 控制台输出(用于 docker logs) --><appendername="CONSOLE"class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><rootlevel="INFO"><appender-refref="FILE"/><appender-refref="CONSOLE"/><!-- 👈 同时输出到文件和控制台 --></root></configuration>
  • 如果是只有本地运行或者直接使用jar包运行进行收集日志,配置 logback-spring.xml 就已经可以了,洛阳是使用docker-compose进行启动的服务,所以还要配置一下 docker-compose.yml 进行一下映射,把docker容器内的文件路径挂载到宿主机上边,不然重启容器,所有收集的日志也就没了。(怎么使用docker-compose启动Java服务,请看这里:使用docker运行Java项目)
version:'3.8'services:te:build:.image:tecontainer_name:teenvironment:# 启用远程调试(开发时临时加)-JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8082-JAVA_OPTS=-Xms64m-Xmx192m-XX:MetaspaceSize=48m-XX:MaxMetaspaceSize=96m-XX:+UseG1GC-Djava.security.egd=file:/dev/./urandom-XX:+TieredCompilation-XX:TieredStopAtLevel=1-XX:CICompilerCount=2mem_limit:350mmem_reservation:200mvolumes:-./log:/app/logs# 👈 宿主机路径:容器内路径,日志收集到宿主机里边进行持久化ports:-"8081:8081"-"8082:8082"restart:unless-stopped

结尾

  • 朝花 夕拾
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 9:03:33

嵌入式软件自学:单片机/C语言 五大区(专栏长期持续更新)

嵌入式软件核心&#xff1a;单片机/C语言五大内存区全解析&#xff08;原理、布局与实战&#xff09; 聚焦嵌入式内存管理落地与故障解决 一、核心认知&#xff1a;五大内存区的定位与核心价值 单片机运行C语言程序时&#xff0c;内存&#xff08;FlashRAM&#xff09;会被划分…

作者头像 李华
网站建设 2026/4/9 11:24:39

企业级云服务器部署应优先选择RHEL系还是Debian系操作系统?

企业级云服务器部署中&#xff0c;RHEL系&#xff08;如 RHEL、Rocky Linux、AlmaLinux&#xff09;通常更适合作为首选&#xff0c;但需结合具体场景权衡&#xff1b;Debian/Ubuntu LTS 在特定领域&#xff08;如云原生、开发友好性、成本敏感型场景&#xff09;同样具备强大竞…

作者头像 李华
网站建设 2026/4/14 13:54:53

如何快速掌握Java Excel处理:开发者的终极指南

如何快速掌握Java Excel处理&#xff1a;开发者的终极指南 【免费下载链接】fastexcel easyexcel作者最新升级版本&#xff0c; 快速、简洁、解决大文件内存溢出的java处理Excel工具 项目地址: https://gitcode.com/gh_mirrors/fast/fastexcel 在当今数据驱动的商业环境…

作者头像 李华
网站建设 2026/4/8 0:24:57

阻抗计算工具实战指南:从理论公式到精准设计

在PCB阻抗控制领域&#xff0c;理论理解是基础&#xff0c;工具使用则是关键。作为PCB技术运营专家&#xff0c;我今天将为大家详细介绍阻抗计算的实用工具和方法&#xff0c;帮助你们从“知道”升级到“会用”。​手工计算公式&#xff1a;理论基础不可少虽然现在大多使用软件…

作者头像 李华
网站建设 2026/4/12 21:33:04

揭秘Maxun智能数据筛选:告别冗余信息,精准捕获目标内容

在信息爆炸的时代&#xff0c;网页数据提取常常面临"大海捞针"的困境——抓取结果中混杂着大量无关信息&#xff0c;真正有价值的内容反而被淹没其中。Maxun作为开源无代码网页数据提取平台&#xff0c;通过创新的元数据过滤技术&#xff0c;让数据筛选变得像使用智能…

作者头像 李华