news 2026/5/1 11:44:23

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/5/1 10:26:13

防爆气象站监测方案

大家在选择、使用防爆气象站时&#xff0c;是不是总有一堆疑问&#xff1f;比如 “不同化工场景该怎么选配置&#xff1f;”“安装后怎么维护才耐用&#xff1f;”“能不能对接我们现有系统&#xff1f;”…… 本期专栏整理了高频疑问&#xff0c;逐一为你解答&#xff0c;帮你…

作者头像 李华
网站建设 2026/5/1 6:02:04

DeepSeek-Prover-V2:如何用AI大模型轻松解决数学定理证明难题

DeepSeek-Prover-V2&#xff1a;如何用AI大模型轻松解决数学定理证明难题 【免费下载链接】DeepSeek-Prover-V2-671B 项目地址: https://ai.gitcode.com/hf_mirrors/deepseek-ai/DeepSeek-Prover-V2-671B 你是否曾经面对复杂的数学定理证明感到无从下手&#xff1f;Dee…

作者头像 李华
网站建设 2026/5/1 6:00:04

配送跑腿系统:构建高并发、低延迟的同城配送系统架构解析

在即时零售与本地生活服务爆发式增长的2025年&#xff0c;同城配送系统已成为连接商家与消费者的"数字神经中枢"。面对日均百万级订单、毫秒级响应、动态路况感知等核心挑战&#xff0c;本文将深度解析如何通过技术架构创新实现"30分钟达"的极致体验。一、…

作者头像 李华
网站建设 2026/5/1 8:07:18

怎么看我的主板支不支持DDR5?

现在的内存类型越来越多&#xff0c;DDR4、DDR5傻傻分不清&#xff1f;你是不是也在装机或者升级的时候&#xff0c;纠结自己主板到底支不支持DDR5&#xff1f;别急&#xff0c;这事儿真不难搞清楚&#xff0c;看完这篇文章&#xff0c;包你立刻知道怎么判断你的主板“吃不吃得…

作者头像 李华
网站建设 2026/4/30 22:04:31

PCB走线阻抗:高速设计的隐形守护者

大家好&#xff0c;我是你们的PCB技术运营伙伴。今天我们来聊聊一个看似枯燥却至关重要的话题——PCB走线阻抗。如果你认为这只是一根铜线的粗细问题&#xff0c;那就大错特错了&#xff01;在高速电路设计中&#xff0c;阻抗控制就像是交通系统中的红绿灯&#xff0c;没有它&a…

作者头像 李华
网站建设 2026/4/24 22:34:56

29、Vim编程增强:语法高亮、编译与错误检查全攻略

Vim编程增强:语法高亮、编译与错误检查全攻略 1. 语法高亮基础 Vim允许用户对语法高亮进行修正和自定义,主要涉及 colorscheme 、 highlight 两个命令以及 background 选项。 1.1 语法组 Vim将不同类型的文本分类到各个组中,每个组都有颜色和高亮定义,还支持组嵌…

作者头像 李华