1.maven
<!--日志elasticsearch-->
<dependency>
<groupId>com.agido</groupId>
<artifactId>logback-elasticsearch-appender</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>7.3</version>
</dependency>
<!-- elasticsearch依赖 -->
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>8.7.1</version>
</dependency>
2.logback.xml配置
<!--输出到logstash的appender-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--可以访问的logstash日志收集端口-->
<destination>ip:port</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"serviceId":"web-app"}</customFields>
<includeMdcKeyName>startTime</includeMdcKeyName>
<includeMdcKeyName>endTime</includeMdcKeyName>
<includeMdcKeyName>requestRawJson</includeMdcKeyName>
<includeMdcKeyName>responseRawJson</includeMdcKeyName>
<includeMdcKeyName>responseTime</includeMdcKeyName>
<includeMdcKeyName>url</includeMdcKeyName>
<includeMdcKeyName>method</includeMdcKeyName>
<includeMdcKeyName>path</includeMdcKeyName>
</encoder>
<writeBufferSize>32000</writeBufferSize>
</appender>
<!--所有错误日志都打印-->
<root level="ERROR">
<appender-ref ref="LOGSTASH"/>
<appender-ref ref="FILE"/>
</root>
<!--项目mis包下日志-->
<logger name="xxx" level="${LOG_LEVEL}" additivity="false">
<appender-ref ref="LOGSTASH"/>
<appender-ref ref="FILE"/>
</logger>
<!-- hibernate sql日志 -->
<logger name="org.hibernate.SQL" level="WARN"/>
3.日志记录情况