logback与logstash的集成
TLog从v1.4.0开始,增加了logstash socket层面与logback的适配,使得TLog可以直接发送socket数据给logstash服务端。
同步&异步,MDC的同步&异步都支持。
提示
目前只支持了logback日志框架,对于log4j和log4j2框架暂不支持
如果想集成logstash,首先在pom中要增加一个依赖:
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>tlog-logstash-logback</artifactId>
<version>1.5.2</version>
</dependency>
然后需要在你的logback配置文件中新增一个appender,样例如下:
<!-- 为logstash输出的JSON格式的Appender -->
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>Logstash服务端IP:端口</destination>
<keepAliveDuration>5 minutes</keepAliveDuration>
<!-- 日志输出编码 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<provider class="com.yomahub.tlog.logstash.logback.TLogLogstashLogbackProvider"/>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>
<pattern>
{
"level": "%level",
"thread": "%thread",
"class": "%logger{40}",
"message": "%message",
"stack_trace": "%exception{10}",
"client_time": "%d{yyyy-MM-dd HH:mm:ss.SSS}"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>
这样就可以了,启动后,日志输出的同时,会把标签信息和日志信息输出到logstash中。
可以利用logstash的控制台输出信息测试,logstash的配置文件样例为:
input {
tcp {
port => 9800
}
}
filter {
json {
source => "message"
}
}
output {
stdout { codec => rubydebug }
}
帮助我们改善文档 (opens new window)
last update: 2024/04/15, 11:31:20