springboot Logback 不同环境,配置不同的日志输出路径

ops/2024/9/24 9:03:42/

1.背景:

mac 笔记本开发,日志文件写到/data/logs/下,控制台报出:Failed to create parent directories for [/data/logs/...........

再去手动在命令窗口创建文件夹data,报Read-only file system

2.修改logback-spring.xml文件:

resource 目录下的配置文件列表:

logback-spring.xml添加配置, 只有local写到当前项目下的data目录,其他环境写到系统根目录/data下

<springProfile name="local"><property name="LOG_HOME" value="./data/logs/${appName}/${hostname}/"/>
</springProfile>

完整的logback-spring.xm

<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"><include resource="org/springframework/boot/logging/logback/defaults.xml"/><springProperty scope="context" name="appName" source="spring.application.name"defaultValue="onemap-quality-manage-service"/><springProperty scope="context" name="ip" source="spring.cloud.client.ip-address"/><property name="CONSOLE_LOG_PATTERN"value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [${ip} ${appName}] [%(%-5level) %logger{80}:%line]:%msg%n"/><property name="LOG_HOME" value="/data/logs/${appName}/${hostname}/"/><springProfile name="local"><property name="LOG_HOME" value="./data/logs/${appName}/${hostname}/"/></springProfile><!-- 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${CONSOLE_LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 日志文件:按照每天生成 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/${appName}-${ip}-info.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件输出的文件地址和名称--><FileNamePattern>${LOG_HOME}/${appName}-${ip}-info-%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件保留天数--><MaxHistory>30</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${CONSOLE_LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- error日志 --><appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/${appName}-${ip}-error.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件输出的文件地址和名称--><FileNamePattern>${LOG_HOME}/${appName}-${ip}-error-%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件保留天数--><MaxHistory>30</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${CONSOLE_LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><!-- 只接收错误级别的日志 --><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!--设置框架的日志--><logger name="org.springframework" level="INFO"/><logger name="org.apache" level="WARN"/><!-- 日志输出级别 --><root level="INFO"><appender-ref ref="STDOUT"/><appender-ref ref="FILE"/><appender-ref ref="ERROR"/></root>
</configuration>

3.profiles.active 指定配置的local

日志写到当前项目下的/data/目录


http://www.ppmy.cn/ops/13108.html

相关文章

kettle从入门到精通 第五十三课 ETL之kettle MQTT/RabbitMQ producer 实战

1、MQTT介绍 MQTT (Message Queuing Telemetry Transport) 是一种轻量级的消息传输协议&#xff0c;设计用于连接低带宽、高延迟或不可靠网络的设备。 MQTT 是基于发布/订阅模式&#xff08;Publish/Subscribe&#xff09;的协议&#xff0c;其中设备可以发布消息到一个主题&…

c# 连接数据库、excel数据批量导入到数据库

string str $"select from TBa where ... ";DataSet ds new DataSet();using (SqlConnection conn new SqlConnection("server000.000.0.000;database数据库名;user id登录的用户名;password密码;Poolingtrue")){try{conn.Open();SqlCommand com new Sq…

如何实现redis的高可用?

1.主从模式&#xff1a;就是一个住节点&#xff0c;多个从节点&#xff0c;但是弊端是一个主节点崩了&#xff0c;需要手动的切换从节点&#xff0c;这个挺麻烦的 2.哨兵模式&#xff1a;就是为了解决主从模式的弊端从而在主从模式的基础上加了哨兵&#xff0c;从而可以实现自动…

基于 Flexbox 的纯 CSS 框架:兼容性好、文档丰富 | 开源日报 No.232

jgthms/bulma Stars: 48.3k License: MIT bulma 是基于 Flexbox 的现代 CSS 框架。 基于 Flexbox 技术。提供快速安装方式&#xff0c;支持 NPM、Yarn 和 Bower。仅包含 CSS 文件&#xff0c;没有 JavaScript 部分。兼容性良好&#xff0c;在主流浏览器上运行良好。提供丰富的…

Linux内核驱动开发-字符设备驱动框架

1前置条件 &#xff08;1&#xff09;【linux】内核编译结束 &#xff08;2&#xff09;【linux】目录配置跳转文件&#xff1a;补充&#xff1a;配置的跳转文件只能在【linux】目录下使用&#xff0c;子目录无法使用2驱动框架 2.1编写驱动程序 #include <linux/init.h&g…

JPA Example 默认 join

起因&#xff1a; 由于同事增加了一个对象关联。并且采用了Example查询&#xff0c;导致了一个Null的问题。 主表&#xff1a;BoBookingorder 关联表&#xff1a;BoJobcontainerinfo 一 关联如下&#xff1a; Entity Table(name "bo_bookingorder",catalog &quo…

阿斯达年代记三强争霸账号怎么注册 游戏账号注册教程分享

即将于4月24日隆重推出的《阿斯达时代&#xff1a;三巨头对决》这款大规模多人在线角色扮演游戏巨制&#xff0c;是由Netmarble公司携手STUDIO DRAGON联手创作。游戏中&#xff0c;围绕着阿斯大陆的主权掌控&#xff0c;三个主要阵营——阿斯达、亚高及非法者组织之间展开了扣人…

比赛记录:Codeforces Round 940 (Div. 2) and CodeCraft-23 A~E

传送门:CF [前题提要]:感觉这场题目其实都很经典.遗憾的是赛时C题答案统计看成了不同的下棋的方案数,然后以为刚开始不能放不是一种答案(直接特判输出了0),卡了一场比赛.幸好最后15min险过CD,不然掉大分了 A. Stickogon 难点在于读懂题意. 读懂题意之后不难发现每根木棒都形成…