spring boot下使用logback或log4j生成符合Logstash标准的JSON格式

摘要:
使用logback1.引入logstash日志格式以支持<dependency><groupId>net。日志存储。logback</groupId><artifactId>logstash logback编码器</artifactId><version>4.4</version></dependency>2.在springboot中配置文件application.properties

使用logback

1.引入logstash日志格式支持

<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.4</version>
</dependency>

2.在spring boot的配置文件application.properties指定使用logback.xml位置

logging.config=config/logback.xml

3.在logback.xml中添加用来记录logstash的appender

<appender name="LOGSTASH" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
        <charset>utf8</charset>
    </encoder> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
        <fileNamePattern>logstash/logstash-%d{yyyy-MM-dd}.log</fileNamePattern>  
    </rollingPolicy>  
</appender>

4.将某一个logger输入到这个appender上

<logger name="xxx" additivity="false">
   <level value="INFO" />
   <appender-ref ref="LOGSTASH" />
</logger>

使用log4j

1.spring boot默认使用logback记录日志,所以首先要从组件spring-boot-starter-logging中剔除logback,再引入log4j,代码如下:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<exclusions>
<exclusion>
<artifactId>logback-classic</artifactId>
<groupId>ch.qos.logback</groupId>
</exclusion>
</exclusions>

</dependency>

2.添加logstash日志格式的支持:

<dependency>
<groupId>net.logstash.log4j</groupId>
<artifactId>jsonevent-layout</artifactId>
<version>1.7</version>
</dependency>

3.在spring boot的配置文件application.properties指定使用log4j作为日志组件

#指定log4j.properties的位置

logging.config=config/log4j.properties

4.log4j.properties中添加用来记录logstash的appender

log4j.logger.xxx=INFO,logstash

log4j.appender.logstash=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logstash.File=logstash/logstash.log
log4j.appender.logstash.Append=true
log4j.appender.logstash.Encoding=UTF-8
log4j.appender.logstash.layout=net.logstash.log4j.JSONEventLayoutV1

免责声明:文章转载自《spring boot下使用logback或log4j生成符合Logstash标准的JSON格式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#语言Windows服务程序测试网站发送HTTP请求超时解决办法C#环境搭建,以及C#编译器的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java日志框架总结

1. 前言   从写代码开始,就陆陆续续接触到了许多日志框架,较常用的属于LOG4J,LogBack等。每次自己写项目时,就copy前人的代码或网上的demo。配置log4j.properties或者logback.properties就能搞定。这种思想一直持续到最近,前几天写了一个小demo,放在liunx上跑的时候竟然报stackOverFlow异常,...

Hibernate 配置

 Hibernate为操作数据库提供了一系列的API,为了能够准确的使用这些API,要在开发环境里要做很多的环境配置,归结起来有几个重要步骤:  A. 导入正确版本的jar包(hibernate提供的Jar包、数据库驱动包、日志文件包)  B. 编写配置文件(Hibernate配置文件、日志文件配置   笔者将Hibernate的配置做一下详细描述,大家根...

把在程序中的System.out.print()的信息自动转成log4j日志信息

问题:老的系统中,程序未使用log4j,而是使用System.out.println()将信息打印到了tomcat。现在客户提出要保存打印到tomcat的日志信息,引入log4j固然需要,但修改代码及后续测试的工作量与风险也让人头大。如何解决这样的问题呢?  回答:System.setOut(PrintStream ps)方法允许程序员自行定义Syst...

logstash 过滤filter

logstash过滤器插件filter详解及实例 1、logstash过滤器插件filter 1.1、grok正则捕获 grok是一个十分强大的logstash filter插件,他可以通过正则解析任意文本,将非结构化日志数据弄成结构化和方便查询的结构。他是目前logstash 中解析非结构化日志数据最好的方式 grok的语法规则是: %{语法:语义} “...

Log4j配置详解(转)

一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、I...

ELK从5.6.3升级到6.3.0总结

ELK从5.6.3升级到6.3.0总结 由于6.3.0默认有es的监控功能,并且我们现在es总是有各种问题,原有的es开源插件head和HQ的监控都不够详细,所以决定升级es集群。我们目前es有5个node。我们的数据流向是filebeat logstash kafka logstash elasticsearch grafana elasticsearc...