news 2026/8/11 11:30:49

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/8/9 3:21:19

嵌入式软件自学:单片机上电流程(专栏长期持续更新)

STM32上电软件流程&#xff1a;从启动到执行的技术链路与实战要点 专栏长期持续更新&#xff0c;聚焦STM32底层开发与问题排查 STM32上电启动的软件流程&#xff0c;是嵌入式开发的基础底层逻辑&#xff0c;其执行顺序直接决定设备能否稳定运行。从芯片通电到用户业务逻辑启动&…

作者头像 李华
网站建设 2026/8/10 5:03:32

30亿参数撬动企业级AI:IBM Granite 4.0-H-Micro改写本地化部署规则

导语 【免费下载链接】granite-4.0-h-micro-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/granite-4.0-h-micro-GGUF IBM最新发布的Granite 4.0-H-Micro模型以30亿参数实现了主流大模型70%的性能&#xff0c;通过Unsloth量化技术将部署门槛降至单GPU级别…

作者头像 李华
网站建设 2026/8/8 19:19:55

Windows下3步完成流媒体服务器部署:新手极速上手指南

Windows下3步完成流媒体服务器部署&#xff1a;新手极速上手指南 【免费下载链接】nginx-rtmp-win32 Nginx-rtmp-module Windows builds. 项目地址: https://gitcode.com/gh_mirrors/ng/nginx-rtmp-win32 想要在Windows系统上快速搭建专业的流媒体服务器吗&#xff1f;…

作者头像 李华
网站建设 2026/8/10 21:01:35

为什么插满4根内存后会不稳或掉频?

嘿&#xff0c;各位装机小伙伴&#xff01;是不是有很多人跟我一样&#xff0c;看着主板上四个空荡荡的内存插槽&#xff0c;就总觉得心里痒痒的&#xff1f;“必须给它插满&#xff01;”——这简直是DIY玩家的终极强迫症。于是&#xff0c;你兴冲冲地买来四条帅气的内存条&am…

作者头像 李华
网站建设 2026/8/11 0:47:54

NVMe-oF 国产IP设计:网络存储解决方案

我们根据以往NVMe和RDMA 开发经验&#xff0c;推出国产化NVMe-oF IP。其系统架构如下&#xff1a;该IP具备如下优势&#xff1a;用单条三星980Pro测试&#xff0c;读写轻松越过6GBps。 较好发挥PCIe4.0的SSD存储接口优势和性能。 如果对该IP想进一步了解&#xff0c;请看视频&a…

作者头像 李华
网站建设 2026/8/11 10:35:47

30、Vim的高级功能与实用技巧

Vim的高级功能与实用技巧 1. Vim编程的一些总结思考 Vim具备众多强大的功能,花些时间掌握这些技巧能极大提升编程效率。如果你是长期使用vi的用户,已经跨越了一道陡峭的学习曲线,那么再付出一些努力去学习Vim的额外功能,开启第二次学习曲线是非常值得的。对于程序员而言,…

作者头像 李华