1、pom.xml配置文件

  1. <dependency>
  2. <groupId>log4j</groupId>
  3. <artifactId>log4j</artifactId>
  4. <version>${log4j.version}</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-log4j2</artifactId>
  9. </dependency>
  10. <!-- log4j2 AsyncLogger need disruptor-->
  11. <dependency>
  12. <groupId>com.lmax</groupId>
  13. <artifactId>disruptor</artifactId>
  14. <version>3.4.</version>
  15. </dependency>

2、log4j2.xml配置信息

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2.  
  3. <Configuration>
  4. <Properties>
  5. <property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-30.30C{1.} : %m%n</property>
  6. </Properties>
  7. <Appenders>
  8. <Console name="Console" target="SYSTEM_OUT" follow="true">
  9. <PatternLayout pattern="${LOG_PATTERN}" />
  10. </Console>
  11.  
  12. <RollingFile name="RollingFile" fileName="d:/logs/main.log"
  13. filePattern="d:/logs/$${date:yyyy-MM-dd}/xinyar-%d{MM-dd-yyyy}-%i.log.gz"
  14. immediateFlush="false" append="true">
  15. <PatternLayout pattern="${LOG_PATTERN}" />
  16. <!-- 每个文件大小 -->
  17. <!-- <SizeBasedTriggeringPolicy size="50M" /> -->
  18. <!-- <SizeBasedTriggeringPolicy size="50KB" /> -->
  19. <SizeBasedTriggeringPolicy size="20M" />
  20. <!-- 不设置,同一文件夹下默认最多7个文件,这里设置同一文件夹下最多50个文件 -->
  21. <DefaultRolloverStrategy max="50" />
  22. </RollingFile>
  23.      <!-- 47.*.*.159为logstash主机外网IP,4560为logstash端口 -->
  24. <Socket name="logstash-tcp" host="47.*.*.159" port="4560" protocol="TCP">
  25. <PatternLayout pattern="${LOG_PATTERN}" />
  26. </Socket>
  27. </Appenders>
  28. <Loggers>
  29. <!-- 异步发送logstash -->
  30. <!-- 如果使用<asyncRoot> 或 <asyncLogger>,includeLocation="true"是必须要设置才会有类路径等一些信息打印出来 -->
  31. <AsyncLogger name="com.xinyartech" level="info" includeLocation="true" >
  32. <appender-ref ref="logstash-tcp" />
  33. </AsyncLogger>
  34.  
  35. <Root level="INFO">
  36. <AppenderRef ref="Console"/>
  37. <AppenderRef ref="RollingFile"/>
  38. </Root>
  39. </Loggers>
  40. </Configuration>

3、logstash配置信息--test4.conf

  1. input {
  2. tcp {
  3. port => 4560
  4. codec => json
  5. }
  6. }
  7.  
  8. output {
  9. elasticsearch {
  10. hosts => "127.0.0.1:9200"
  11. index => "es-message-%{+YYYY.MM.dd}"
  12. }
  13. stdout { codec => rubydebug }
  14. }

 注意:新增"es-message"索引

curl -XPUT 'localhost:9200/es-message?pretty'

4、启动logstash
$ nohup ./logstash -f ../config/test4.conf &

ELK-log4j2异步输出+logstash的更多相关文章

  1. ELK系列(1) - Elasticsearch + Logstash + Kibana + Log4j2快速入门与搭建用例

    前言 最近公司分了个ELK相关的任务给我,在一边学习一边工作之余,总结下这些天来的学习历程和踩坑记录. 首先介绍下使用ELK的项目背景:在项目的数据库里有个表用来存储消息队列的消费日志,这些日志用于开 ...

  2. 一次鞭辟入里的 Log4j2 异步日志输出阻塞问题的定位

    一次鞭辟入里的 Log4j2 日志输出阻塞问题的定位 问题现象 线上某个应用的某个实例突然出现某些次请求服务响应极慢的情况,有几次请求超过 60s 才返回,并且通过日志发现,服务线程并没有做什么很重的 ...

  3. 快速认识ELK中的L - Logstash

    快速认识ELK中的L - Logstash 原创 2016-12-07 杜亦舒 简介 Logstash 是一个开源的数据采集引擎. Logstash 就像是一个管子,左面接数据源接收数据,右面接存储目 ...

  4. elk系列8之logstash+redis+es的架构来收集apache的日志【转】

    preface logstash--> redis --> logstash --> es这套架构在讲究松耦合关系里面是最简单的,架构图如下: 解释下这个架构图的流程 首先前端log ...

  5. elk 日志分析系统Logstash+ElasticSearch+Kibana4

    elk 日志分析系统 Logstash+ElasticSearch+Kibana4 logstash 管理日志和事件的工具 ElasticSearch 搜索 Kibana4 功能强大的数据显示clie ...

  6. ELK之Elasticsearch、logstash部署及配置

    ElasticSearch是一个搜索引擎,用来搜索.分析.存储日志; Logstash用来采集日志,把日志解析为json格式交给ElasticSearch; Kibana是一个数据可视化组件,把处理后 ...

  7. log4j2异步日志解读(二)AsyncLogger

    前文已经讲了log4j2的AsyncAppender的实现[log4j2异步日志解读(一)AsyncAppender],今天我们看看AsyncLogger的实现. 看了这个图,应该很清楚AsyncLo ...

  8. 【linux】【ELK】搭建Elasticsearch+Logstash+Kibana+Filebeat日志收集系统

    前言 ELK是Elasticsearch.Logstash.Kibana的简称,这三者是核心套件,但并非全部. Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是 ...

  9. log4j2 异步多线程打印日志

    log4j2 异步多线程打印日志 Maven依赖 <dependency> <groupId>org.apache.logging.log4j</groupId> ...

随机推荐

  1. Python数据模型及Pythonic编程

    Python作为一种多范式语言,它的很多语言特性都能从其他语言上找到参照,但是Python依然形成了一套自己的“Python 风格”(Pythonic).这种Pythonic风格完全体现在 Pytho ...

  2. 下载Spring4.3.18.RELEASE的官方文档

    wget -p --page-requisites --convert-links -P /root/spring https://docs.spring.io/spring/docs/4.3.18. ...

  3. ajaj简介

    1. 什么是ajax? ajax的全称 Asynchronous(异步) JavaScript and XML. ajax是一种用于创建快速动态网页的技术. 主要用于前后台的交互,在前后台的交互中还有 ...

  4. 4.21Linux(2)

    2019-4-21 22:46:55 今天买了阿里云服务器1年的 116大洋!!! 但是有个服务器感觉很爽!!!!Linux系统还是很有意思的!!!! 直接贴上笔记! 越努力,越幸运!永远不要高估自己 ...

  5. [Educational Round 59][Codeforces 1107G. Vasya and Maximum Profit]

    咸鱼了好久...出来冒个泡_(:з」∠)_ 题目连接:1107G - Vasya and Maximum Profit 题目大意:给出\(n,a\)以及长度为\(n\)的数组\(c_i\)和长度为\( ...

  6. 你不知道的JS之作用域和闭包(三)函数 vs. 块级作用域

      原文:你不知道的js系列 在第(二)节中提到的,标识符在作用域中声明,这些作用域就像是一个容器,一个嵌套一个,这个嵌套关系是在代码编写时定义的. 那么到底是什么产生了一个新的作用域,只有函数能做到 ...

  7. swust oj 1010

    折半查找的实现 1000(ms) 10000(kb) 2877 / 11213 编写程序实现折半查找算法. 输入 第一行是查找表的长度n 第二行是查找表中的数据元素 : 第三行是要查找的数据元素的关键 ...

  8. CUDA编程模型

    1. 典型的CUDA编程包括五个步骤: 分配GPU内存 从CPU内存中拷贝数据到GPU内存中 调用CUDA内核函数来完成指定的任务 将数据从GPU内存中拷贝回CPU内存中 释放GPU内存 *2. 数据 ...

  9. Java中不定项参数(可变参数)的使用

    Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理. 注意事项:   1)不定项参数必须放在参数列表最后一个.   2)不定项参数只能有一个(多 ...

  10. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(2)

    二.nova-api 步骤3:nova-api接收请求 nova-api接收请求,也不是随便怎么来都接收的,而是需要设定rate limits,默认的实现是在ratelimit的middleware里 ...