2023年7月17日发(作者:)
elk通过logstash采集java⽇志介绍⼀下如何从Java⼯程中导出log4J⽇志到Logstash。⼀、log4j基础不能免俗的官⽅介绍:Log4j 是⼀个使⽤ Java 语⾔编写的,可靠、快速、灵活的⽇志框架(API),使⽤ Apache Software License 授权。它被移植到 C、C++、C#、Perl、Python、Ruby 和 Eiffel 语⾔中。Log4j 是⾼度可配置的,在运⾏期使⽤外部的配置⽂件对其进⾏配置。它按照优先级别记录⽇志,并可将⽇志信息定向输出到各种介质,⽐如数据库、⽂件、控制台、Unix Syslog等。Log4j 主要由三部分组成:loggers:负责采集⽇志信息。appenders:负责将⽇志信息发布到不同地⽅。layouts:负责以各种风格格式化⽇志信息。⼆、新建Java⼯程下⾯通过实际的⼯程配置学习如何配置log4j。
打开Eclipse或者Intellij Idea,新建⼀个maven⼯程。⼯程⽬录结构如下图所⽰:
⽂件中加⼊log4j的依赖,版本为1.2.17,中的代码如下:在resource⽬录下新建ties,加⼊以下配置:### 设置###gger = debug,stdout,D,E,logstash### 输出信息到控制抬 ### = = = sionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n### 输出DEBUG 级别以上的⽇志到=/Users/bee/Documents/elk/log4j/###er.D = = /Users/bee/Documents/elk/log4j/ = old = DEBUG
= sionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### 输出ERROR 级别以上的⽇志到=/Users/bee/Documents/elk/log4j/ ###er.E = =/Users/bee/Documents/elk/log4j/
= old = ERROR
= sionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n#输出⽇志到sh=Host==ectionDelay=onInfo=true配置⽂件中,把⽇志输出了四份:第⼀份输出到控制台第⼆份把DEBUG 级别以上的⽇志到⽂件第三份把输出ERROR 级别以上的⽇志到⽂件第四份输出到logstash在java⽬录下添加,内容如下:import ;/** * Created by bee on 17/3/6. */public class Log4jTest { public static final Logger logger=ger(); public static void main(String[] args) { ("This is a debug message!"); ("This is info message!"); ("This is a warn message!"); ("This is error message!");input { log4j { host => "127.0.0.1" port => 4560 }}output { stdout { codec => rubydebug } elasticsearch{ hosts => ["localhost:9200"] index => "log4j-%{+}" document_type => "log4j_type" }}配置⽂件中指定⽇志输出有2份,⼀份输出到console,⼀份输出到Elasticsearch。
启动logstash:sudo ./bin/logstash -f conf/如果你已经启动了Elasticsearch,IP和端⼝都是通畅的,配置⽂件⽆误,启动成功后的界⾯如下:
运⾏,在终端中可以看到以下输出:在Elasticsearch中查看导⼊的⽇志:
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689546221a265090.html
评论列表(0条)