ELK日志处理之使用logstash收集log4J日志

保姆级教程:用Qlib和LightGBM复现A股量化策略(附完整代码与因子分析) 本文提供了一份详细的A股量化策略复现教程,使用Qlib和LightGBM构建技术因子模型。通过完整的代码示例和因子分析,帮助开发者理解Alpha158因子集的应用,优化LightGBM参数,并实现年化收益提升与回撤控制。适合量化交易初学者和进阶者参考。 阅读详情
ELK日志处理之使用logstash收集log4J日志

介绍一下如何从Java工程中导出log4J日志到Logstash。

一、log4j基础

不能免俗的官方介绍:

Log4j 是一个使用 Java 语言编写的,可靠、快速、灵活的日志框架(API),使用 Apache Software License 授权。它被移植到 C、C++、C#、Perl、Python、Ruby 和 Eiffel 语言中。

Log4j 是高度可配置的,在运行期使用外部的配置文件对其进行配置。它按照优先级别记录日志,并可将日志信息定向输出到各种介质,比如数据库、文件、控制台、Unix Syslog等。

Log4j 主要由三部分组成:

  1. loggers:负责采集日志信息。
  2. appenders:负责将日志信息发布到不同地方。
  3. layouts:负责以各种风格格式化日志信息。

二、新建Java工程

下面通过实际的工程配置学习如何配置log4j。 
打开Eclipse或者Intellij Idea,新建一个maven工程。工程目录结构如下图所示: 
这里写图片描述
pom.xml文件中加入log4j的依赖,版本为1.2.17,pom.xml中的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.logs</groupId>
    <artifactId>log4idemo1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>

</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

在resource目录下新建log4j.properties,加入以下配置:

### 设置###
log4j.rootLogger = debug,stdout,D,E,logstash

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=/Users/bee/Documents/elk/log4j/debug.log###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /Users/bee/Documents/elk/log4j/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=/Users/bee/Documents/elk/log4j/error.log  ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =/Users/bee/Documents/elk/log4j/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

#输出日志到logstash
log4j.appender.logstash=org.apache.log4j.net.SocketAppender
log4j.appender.logstash.RemoteHost=127.0.0.1
log4j.appender.logstash.port=4560
log4j.appender.logstash.ReconnectionDelay=60000
log4j.appender.logstash.LocationInfo=true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

配置文件中,把日志输出了四份:

  1. 第一份输出到控制台
  2. 第二份把DEBUG 级别以上的日志到文件
  3. 第三份把输出ERROR 级别以上的日志到文件
  4. 第四份输出到logstash

在java目录下添加Log4jTest.java,内容如下:

import org.apache.log4j.Logger;
/**
 * Created by bee on 17/3/6.
 */
public class Log4jTest {
    public static final Logger logger=Logger.getLogger(Log4jTest.class);

    public static void main(String[] args) {
        logger.debug("This is a debug message!");
        logger.info("This is info message!");
        logger.warn("This is a warn message!");
        logger.error("This is error message!");

        try{
           System.out.println(5/0);
        }catch(Exception e){
            logger.error(e);
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

三、配置logstash

(logstash的安装和hello world教程请点这里http://blog.youkuaiyun.com/napoay/article/details/53276758)这里使用logstash2.3.3和Elasticsearch 2.3.3,首先启动Elasticsearch,然后在logstash-2.3.3/conf目录下新建配置文件log4j-es.conf,文件内容如下:

input {
    log4j {
        host => "127.0.0.1"
        port => 4560
    }
}

output {
    stdout {
      codec => rubydebug
    }
    elasticsearch{
        hosts => ["localhost:9200"]
        index => "log4j-%{+YYYY.MM.dd}"
        document_type => "log4j_type"
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

配置文件中指定日志输出有2份,一份输出到console,一份输出到Elasticsearch。 
启动logstash:

sudo ./bin/logstash -f conf/log4j-es.conf
  • 1

如果你已经启动了Elasticsearch,IP和端口都是通畅的,配置文件无误,启动成功后的界面如下: 
这里写图片描述

运行Log4jTest.java,在终端中可以看到以下输出:

这里写图片描述

在Elasticsearch中查看导入的日志: 
这里写图片描述

四、总结

上述配置完成了日志的产生,到logstash,再到Elasticsearch,介绍完毕。

版权声明:本文为博主原创文章,未经博主允许禁止转载(http://blog.youkuaiyun.com/napoay) https://blog.youkuaiyun.com/napoay/article/details/59810063
使用logstash采集log4j日志   注:logstash版本不能过高,我使用的是logstash-2.3.3,地址为:https://download.elastic.co/logstash/logstash/logstash-2.3.3.tar.gz   logstash配置文件如下         input { log4j { host =&gt; "127.0.0.1" mode =&gt; "... 阅读详情

相关推荐

复信号的调制与解调(基带)

Digital modulation methods can be considered as digital-to-analog conversion and the corresponding demodulation or detection as analog-to-digital conversion. 数字调制可以看成是数字到模拟的变换,同样,数字解调也可以看作是模拟向数字的转换。

JonTargaryen的博客 1万+

log4j+logstash

logstash配置input{ log4j{ mode => "server" host => "0.0.0.0" port => "4560" } } filter { } output { #标准输出 stdout { codec => rubydebug } } 启动logstash参数详解mode logstash工作模式,可选"server

m0_37556124的博客 1260

关于深度可分离卷积

关于深度学习中的深度可分离卷积

qq_45670407的博客 1796

【Logstash】日志处理-Logstash的使用

日志可以协助我们的调试和开发。在开发中尽量使用日志的方式来调试,是我们推荐的做法。尽量避免使用System.out.println. 因为很多时候我们调试完毕都要进行删除调试代码。留下会给程序增加运行时间。而日志可以很方便的控制级别就可以控制是否输入,而支持存储的形态很多。比如数据库,文件等。所以日志是我们开发中必不可少的一环。如果级别是:debug ,debug和 info以及error都会输出如果级别是:info ,那么只会打印初:info和error。

上官玺的博客 4920

Android - 蓝牙开发

文章目录科普SIG类型制式编程Classic BluetoothBluetooth Low Energy蓝牙的UUID是什么?有什么用? 科普 https://zh.wikipedia.org/wiki/%E8%97%8D%E7%89%99 蓝牙(英语:Bluetooth),一种无线通讯技术标准,用来让固定与移动设备,在短距离间交换资料,以形成个人局域网(PAN)。其使用短波特高频(UHF)无线电波,经由 2.4 至 2.485 GHz 的 ISM(工业、科学、医疗)频段来进行通信。1994 年由电信商

qq_43323826的博客 1万+

【逆强化学习-1】学徒学习(Apprenticeship Learning)

逆强化学习算法1:学徒学习。算法原理+算法步骤+代码+仿真:一个基于gym的小车上山的仿真。附赠学徒学习+Q-Table及学徒学习+DQN的全套代码。

体会编程语言独到的美 7495

ELK日志处理之使用logstash收集log4J日志 和log4j日志properties配置

Log4j 主要由三部分组成: loggers:负责采集日志信息。 appenders:负责将日志信息发布到不同地方。 layouts:负责以各种风格格式化日志信息。 创建maven工程,pom中导入日志依赖: <dependency> <groupId>log4j</groupId> <artifactId>log4j&l...

lyf_ldh的博客 3270

避坑指南:Qt无边框窗口拖动+阴影效果这些细节要注意

本文深入探讨了Qt无边框窗口开发中实现流畅拖动与阴影效果的关键细节与常见陷阱。针对高DPI屏幕适配、阴影闪烁、拖动卡顿及多显示器兼容性等核心难题,提供了从QGraphicsDropShadowEffect原理剖析到手动绘制优化、坐标系统精准处理及平台原生事件拦截的实战解决方案,帮助开发者构建稳定、美观的商业级应用界面。

weixin_27943395的博客 479

ELK日志收集系统,收集springboot日志

ELK日志收集系统搭建Elasticsearch安装及部署 Elasticsearch 安装及部署 1. 输入命令 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.1-linux-x86_64.tar.gz tar -xzf elasticsearch-7.14.1-linux-x86_64.tar.gz cd elasticsearch-7.14.1/ 2. 更改配置 vim config/elas

流苏的博客 941

Halcon实战:5分钟搞定自定义直线卡尺工具(附完整代码下载)

本文详细介绍了如何使用Halcon快速开发自定义直线卡尺工具,通过交互式ROI绘制、边缘检测和直线拟合三个核心函数,实现高效工业视觉检测。文章包含完整代码下载,帮助开发者在5分钟内掌握这一实用工具的开发技巧,提升直线检测的精度和效率。

perl8的博客 251

在Allegro设计界面中如何修改封装焊盘

在高密度板的情况下,SUIPLA(支持内层没有的焊盘摘掉)打勾,在高密度板的情况下,内层没有的焊盘摘掉可以增加走线的空间。3、修改完焊盘后,选择File→Update to Design(更新到设计)。然后关闭焊盘修改对话框即可。,将会定期不定期更新技术文章,互相学习交流。或者点击Options选项卡下要修改的焊盘,然后点击Edit修改。在Allegro PCB设计界面中修改封装焊盘的方法。2、然后点击封装上要修改的焊盘,右击选择Edit。修改完成后如下图所示。

bhxc809751502的博客 7806

springMVC搭建ELK-收集log4j日志

在springMVC项目中,一般都是老项目,log4j版本都是1.2左右,有好多教程都是logstash基于低版本来写的例如2.3,那么我们现在下载的7.12就不适用与log4j1.2左右版本了,因为我们在查看官网会发现此方法以及被弃用https://www.elastic.co/guide/en/logstash/current/plugins-inputs-log4j.html,官网推荐用filebeat来收集日志发送大Logstash,所以我们这这篇文章说一下springMVC搭建ELK 首先下

qq_32923295的博客 448

QGis 相关技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中...)

QGis 相关技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中...)

279

Java 日志简介

所以单独的 slf4j 是不能工作的,必须搭配其他具体的日志实现方案,比如 apache 的 org.apache.log4j.Logger,jdk 自带的 java.util.logging.Logger 等。Log4j 中将要输出的 Log 信息定义了 5 种级别,依次为 DEBUG、INFO、WARN、ERROR 和 FATAL,当输出时,只有级别高过配置中规定的 级别的信息才能真正的输出,这样就很方便的来配置不同情况下要输出的内容,而不需要更改代码。 同样的代码路径,Logback 执行更快。

一名后端程序猿 573

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【日志】总结

是一个为 Java 程序提供日志输出的统一接口,并不是一个具体的日志实现方案,只是一种规则而已。所以单独的 slf4j 是不能工作的,必须搭配其他具体的日志实现方案,比如 apache 的 org.apache.log4j.Logger, jdk 自带的java.util.logging.Logger 等。是软件集合 Elasticsearch、 Logstash、 Kibana 的简称,由这三个软件及其相关的组件可以打造大规模日志实时处理系统。

weixin_39795049的博客 370

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SpringBoot+Kafka+ELK 完成海量日志收集(超详细)

SpringBoot项目准备 引入log4j2替换SpringBoot默认log,demo项目结构如下: pom <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 排除

简单随风的博客 4925

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java服务端开发中的日志管理:从Log4j到ELK的最佳实践

在Java服务端开发中,日志管理不仅是调试的重要工具,更是监控和维护系统健康的关键。Log4j提供了基本的日志记录功能,而ELK则提供了强大的日志分析和可视化能力。在Java服务端开发中,日志管理是一个至关重要的环节,它不仅用于调试和监控,还帮助我们跟踪应用的运行状态和处理错误。ELK(Elasticsearch, Logstash, Kibana)是一套流行的日志分析和可视化工具,能够提供更高级的日志处理功能。Log4j是一个经典的Java日志记录库,它为日志记录提供了灵活的配置和强大的功能。

微赚淘客系统开发者博客 1189

ELK---日志收集系统

ELK—日志收集系统 1.要收集哪些日志? ①系统日志–为监控做准备 ②服务日志–数据库–MySQL–慢查询日志、错误日志、普通日志 ③业务日志–log4j(必须要收集的是业务日志) 注:log4j—Java类的数据业务日志 (1)要有针对性的去收集 (2)调整日志级别 2.日志收集后,如何展示?(可视化) ①kibana ②grafana 3.日志收集展示出来后,怎么使用? ①用于给大数据进行分析,作为立体化展示的数据源 ②给研发使用(排障、解决bug等等) ③统计数据流量、作为分析报告的数据源 ELK工

dingshun129的博客 3863
上一篇: Centos6.5下 logstash5.2.2的安装 + log4j模式 (实践成功)
下一篇: 在使用Sqoop将数据从Hive导入MySQL过程中,出现一下错误
王树民
博客等级 码龄10年 912粉丝 560原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值