Java之-Logback大型项目使用总结

前言

Logback是一个开源的日志组件,SpringBoot中现在内置的也是logback日志框架,可以看出来它的地位,本篇文章主要就是介绍logback的上产使用配置等,以及一些比较重要的解决方案,本文中的文件直接就可以上生产使用。

1.logstash直接配置在logback:

logback是可以支持直接配置logstash的ip和端口进行推送的,类似于阿里云的日志推送。当然如果考虑到量大的的话可以采用filebeat直接推送es,
通过定义pipeline.json来进行创建索引,也可以采用filebeat-》logstash(解决索引问题)-》es,当然也可以加入通过其他的kafka中间件等。下面文件是logstash的logback中的配置文件,修改对应的ip和端口即可。

<?xml version="1.0" encoding="UTF-8"?>
<included>
 
	<!-- 将日志打印到控制台 -->
    <appender name="PROJECT-CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern> %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
 
	<!-- 将日志写入到文件配置 -->
    <appender name="PROJECT-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logging.path}/application.log</file>
        <encoder >
            <pattern>"host": "%ip" %d{HH:mm:ss.SSS} %-5level [%thread] %logger{32}[%file:%line] -&gt; %msg%n</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
		<!--配置备份 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${logging.path}/application.log.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
            <maxHistory>7</maxHistory>
        </rollingPolicy>
    </appender>
 
	<!-- logback 和 logstash 通讯配置 -->
    <appender name="SOCKET" class="net.logstash.logback.appender.LogstashSocketAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <host>${logstash.host}</host>
        <port>${logstash.port}</port>
    </appender>
 
    <!-- logstash远程日志配置-->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>${logstash.host}:${logstash.port}</destination>
		<!--输出打印json格式-->
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <pattern>
                    <pattern>
                        <!--输出日志可自定义,可根据自己需要配置-->
                        {
                        <!--es索引名称 -->
                        "indexname":"test_logstash",
                        <!--应用名称 -->
                        "appname":"${spring.application.name}",
                        <!--服务器ip -->
                        "host": "%ip",
                        <!--应用端口 -->
                        "port": "${spring.application.index}",
                        <!--打印时间 -->
                        "timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}",
                        <!--线程名称 -->
                        "thread": "%thread",
                        <!--日志级别 -->
                        "level": "%level",
                        <!--日志名称 -->
                        "logger_name": "%logger",
                   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值