ELK-log4j2异步输出+logstash
1、pom.xml配置文件
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<!-- log4j2 AsyncLogger need disruptor-->
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.4.2</version>
</dependency>
2、log4j2.xml配置信息
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration>
<Properties>
<property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-30.30C{1.} : %m%n</property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${LOG_PATTERN}" />
</Console>
<RollingFile name="RollingFile" fileName="d:/logs/main.log"
filePattern="d:/logs/$${date:yyyy-MM-dd}/xinyar-%d{MM-dd-yyyy}-%i.log.gz"
immediateFlush="false" append="true">
<PatternLayout pattern="${LOG_PATTERN}" />
<!-- 每个文件大小 -->
<!-- <SizeBasedTriggeringPolicy size="50M" /> -->
<!-- <SizeBasedTriggeringPolicy size="50KB" /> -->
<SizeBasedTriggeringPolicy size="20M" />
<!-- 不设置,同一文件夹下默认最多7个文件,这里设置同一文件夹下最多50个文件 -->
<DefaultRolloverStrategy max="50" />
</RollingFile>
<!-- 47.*.*.159为logstash主机外网IP,4560为logstash端口 -->
<Socket name="logstash-tcp" host="47.*.*.159" port="4560" protocol="TCP">
<PatternLayout pattern="${LOG_PATTERN}" />
</Socket>
</Appenders>
<Loggers>
<!-- 异步发送logstash -->
<!-- 如果使用<asyncRoot> 或 <asyncLogger>,includeLocation="true"是必须要设置才会有类路径等一些信息打印出来 -->
<AsyncLogger name="com.xinyartech" level="info" includeLocation="true" >
<appender-ref ref="logstash-tcp" />
</AsyncLogger>
<Root level="INFO">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
3、logstash配置信息--test4.conf
input {
tcp {
port => 4560
codec => json
}
}
output {
elasticsearch {
hosts => "127.0.0.1:9200"
index => "es-message-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
注意:新增"es-message"索引
curl -XPUT 'localhost:9200/es-message?pretty'
4、启动logstash
$ nohup ./logstash -f ../config/test4.conf &
分类:
ELK
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」