Springboot整合logback多节点日志文件加端口号区分

这篇具有很好参考价值的文章主要介绍了Springboot整合logback多节点日志文件加端口号区分。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

描述:正常情况下:在Springboot 项目的resources目录下创建一个logback-spring.xml的日志配置文件,简单配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="./logs" />
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!--日志文件输出的文件名-->
        <FileNamePattern>${LOG_HOME}/info.log.%d{yyyy-MM-dd}.log</FileNamePattern>
        <!--日志文件保留天数-->
        <MaxHistory>30</MaxHistory>
    </rollingPolicy>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
    <!--日志文件最大的大小-->
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <MaxFileSize>10MB</MaxFileSize>
    </triggeringPolicy>
</appender>


<!-- 日志输出级别 -->
<root level="INFO">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
</root>

</configuration>

项目启动后日志都会存储在:部署目录下的 logs 文件夹下面:

<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="./logs" />

文件名称为:

 <!--日志文件输出的文件名-->
  <FileNamePattern>${LOG_HOME}/info.log.%d{yyyy-MM-dd}.log</FileNamePattern>

如图:

Springboot整合logback多节点日志文件加端口号区分,spring boot,logback,java

存在的问题:当Springboot项目集群多节点部署时候,多个项目指向的是同一个logback日志文件,如何区分开?

解决:增加端口号区分即可

新增获取端口配置:

<springProperty name="port" scope="context" source="server.port" defaultValue="0000"/>

并且在文件名称处,获取端口号即可:

<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}_${port}.log</FileNamePattern>

<?xml version="1.0" encoding="UTF-8"?>

<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="./wzzs-log" />
<springProperty name="port" scope="context" source="server.port" defaultValue="0000"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!--日志文件输出的文件名-->
        <FileNamePattern>${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.${port}.log</FileNamePattern>
        <!--日志文件保留天数-->
        <MaxHistory>30</MaxHistory>
    </rollingPolicy>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
    <!--日志文件最大的大小-->
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <MaxFileSize>10MB</MaxFileSize>
    </triggeringPolicy>
</appender>


<!-- 日志输出级别 -->
<root level="INFO">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
</root>

</configuration>

最终结果:根据每个项目端口号区分开

Springboot整合logback多节点日志文件加端口号区分,spring boot,logback,java文章来源地址https://www.toymoban.com/news/detail-701572.html

到了这里,关于Springboot整合logback多节点日志文件加端口号区分的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot日志使用 SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    还是直接上代码 @Slf4j 这玩意 默认支持 不用引入 yml 配置文件 下面分享 xml 方式 在 资源目录下创建 logback-spring.xml 粘贴走 即可 重启 看控制台变化 还有磁盘 有没有写入 坑 : 我在创建的时候 发现 xml 没有生效 排查了半天 发现 在创建 logback-spring.xml 这个文件的时候 我不是手

    2024年04月22日
    浏览(74)
  • windows 如何ping ip 加端口号

    先在系统中找到  勾选上  和平时的ping+ip命令不一样了   现在是telnet + ip +端口号 先看一组无法ping通端口号的案例 若telnet 127.0.0.1 6379  跳转至一个空白界面  代表ping此ip的端口号成功      

    2024年02月12日
    浏览(38)
  • 23、springboot日志使用入门-- SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    就是springboot的默认的日志依赖实现。创建项目的时候存在这个依赖里面。 下面的日志实现就是基于 SLF4J+Logback SLF4J+Logback:SLF4J是门面,Logback是实现 设置日志的级别,可通过以下方式: ▲ 改变Spring Boot的核心日志级别 ▲ 改变程序组件(包括所有各种框架)的核心日志级别

    2024年02月03日
    浏览(54)
  • spring整合logBack日志框架:

    SLF4J(Simple Logging Facade for Java)是一种日志规范,类似于JDBC,我们常用的日志log4j、logback等都实现了这个规范,所以我们可以直接使用SLF4J的规范来使用日志。 它们是同一个作者开发的,logback是重新编写的内核,在一些关键执行的路径上提升了10倍以上。它也支持了一些新的

    2024年02月12日
    浏览(41)
  • logback整合rabbitmq实现消息记录日志

    logback.xml文件配置 yml文件配置 代码配置rabbitmq信息 测试客户端 此外,如果要对日志进行链路标记,可以是用MDC

    2024年02月05日
    浏览(44)
  • 统一日志管理方案:Spring项目logback日志与logstash和Elasticsearch整合

    原创/朱季谦 最近在做一个将分布式系统的日志数据通过logstash传到kafka的功能,做完之后决定业余搭一个ELK日志分析系统,将logstash采集到的日志传给Elasticsearch。经过一番捣鼓,也把这个过程给走通了,于是写了这篇总结,可按照以下步骤搭建logstash采集spring日志数据并传输

    2024年02月03日
    浏览(38)
  • Logback:SpringBoot 2.0 整合 Logback (kafaka es)

    1. 规范了日志的打印格式    2. 增加了彩色日志输出   3. 支持异步推送kafka   4. 日志文件压缩功能 我们无需关心 Logback 版本,只需关注 Boot 版本即可,Parent 工程自动集成了 Logback。Springboot 本身就可以打印日志,为什么还需要规范日志? 日志统一,方便查阅管理。 日志归

    2024年04月22日
    浏览(32)
  • springboot 日志配置(logback)

    Java 中的日志框架主要分为两大类: 日志门面 和 日志实现 。 Java 中的日志体系: 日志门面 日志门面定义了一组日志的接口规范,它并不提供底层具体的实现逻辑。 Apache Commons Logging 和 Slf4j ( Simple Logging Facade for Java 简单日志门面) 就属于这一类。 日志门面的作用:解决系

    2024年02月09日
    浏览(40)
  • springboot logback日志+异常+阿里云日志 aliyun-log-logback-appender

    前言 最近有个新项目用了,springboot3.0,以前项目日志保存得方式是阿里云云服务自动读取日志文件,最近项目部署得方式可能有变化,所以新项目用logback+aliyun-log-logback-appender得方式保存到阿里云日志服务。用logback得原因主要是懒,spring默认就是这个,其他还要各种配置和

    2024年02月10日
    浏览(45)
  • SpringBoot Logback修改日志级别

     1. 在application.yml 通过配置配置,按住Ctrl + 左键可以看源码 2. 自己写接口直接动态修改日志级别,读取application.yml配置文件算是间接修改  

    2024年01月19日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包