1. 程式人生 > >flume入門 log4j 輸出日誌到flume

flume入門 log4j 輸出日誌到flume

將log4j產生的日誌直接輸出到flume控制檯

1.編寫客戶端

package com.study.test;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.util.Date;

public class WriteLog {
    protected static final Log logger = LogFactory.getLog(WriteLog.class);


    public static void main
(String[] args) throws InterruptedException { while (true) { // 每隔兩秒log輸出一下當前系統時間戳 logger.info(new Date().getTime()); //System.out.println(new Date().getTime()); Thread.sleep(2000); try { throw new Exception("exception msg"
); } catch (Exception e) { logger.error("error:" + e.getMessage()); } } } }

2.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.study.test</groupId> <artifactId>log4j2flume</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.flume.flume-ng-clients</groupId> <artifactId>flume-ng-log4jappender</artifactId> <version>1.7.0</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.6.1</version> </dependency> </dependencies> </project>

3. log4j.properties

log4j.rootLogger=INFO,flume
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern="%d{yyyy-MM-dd HH:mm:ss} %p [%c:%L] - %m%n

log4j.appender.flume = org.apache.flume.clients.log4jappender.Log4jAppender
log4j.appender.flume.Hostname = 10.45.17.66
log4j.appender.flume.Port = 4444
log4j.appender.flume.UnsafeMode = true
log4j.appender.flume.layout=org.apache.log4j.PatternLayout
log4j.appender.flume.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c:%L] - %m%n

4.配置flume 建立testlog2flume.conf

a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = avro
a1.sources.r1.bind =0.0.0.0
a1.sources.r1.port = 4444

# Describe the sink
a1.sinks.k1.type=logger
#a1.sinks.k1.type = file_roll
#a1.sinks.k1.sink.directory = /data/soft/flume/tmp
#a1.sinks.k1.sink.rollInterval=86400
#a1.sinks.k1.sink.batchSize=100
#a1.sinks.k1.sink.serializer=text
#a1.sinks.k1.sink.serializer.appendNewline = false

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 1000

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

該配置檔案中 配置了一個代理a1
在代理agent中配置了一個source(源)一個sink(接收器)和一個channel(通道),分別為:r1,k1,c1
r1的型別定義為avro(序列化),對應該型別引數為bind和port 分別為0.0.0.0和4141
k1的型別定義為logger,直接輸出到日誌檔案中
cl的型別定義為記憶體方式,設定其引數capactiy和transactionCapacity分別為1000和1000
指定r1和k1的channel為c1

將上述配置中a1.sinks.k1.type=logger註釋,把a1.sinks其他的給開啟,就是將日誌輸入到檔案

5.到flume目錄下啟動flume

bin/flume-ng agent -c conf -f conf/testlog2flume.conf --name a1 -Dflume.root.logger=INFO,console

flume-ng :flume 命令
agent:執行一個Flume Agent
-c:在指定目錄下使用配置 use configs in directory
-f:指定配置檔案,這個配置檔案必須在全域性選項的–conf(-c)引數定義的目錄下
–name:Agent的名稱(必填)
-Dflume.root.logger=INFO,console 該引數將會把flume的日誌輸出到console

相關推薦

flume入門 log4j 輸出日誌flume

將log4j產生的日誌直接輸出到flume控制檯 1.編寫客戶端 package com.study.test; import org.apache.commons.logging.Log; import org.apache.commons.lo

flumelog4j 收集日誌 到kafka

1. flume 配置# Define a memory channel called ch1 on agent1 agent1.channels.ch1.type = memory agent1.channels.ch1.capacity = 1000 agent1.cha

[轉載]log4j輸出日誌級別控制

ror contain 而在 如何 ogg 設定 一個 需要 net 我們知道:log4j.logger.XX cover ==> log4j.rootLoggerlog4j.appender.XX.Threshold決定了最低接收級別也就是說rootLogger首先

MyBatis3-配置使用log4j輸出日誌

git 並且 setting name spring 引入 aso log art 這篇文章的思路源自http://www.cnblogs.com/EasonJim/p/7050312.html這個錯誤的解決,還是使用上一章http://www.cnblogs.com/Ea

Mybatis用log4j輸出日誌,輸出sql到控制臺

信息 配置 style rac sage pre SQ back rop log4jar包+log4j.properties百度雲下載地址永久有效: https://pan.baidu.com/s/15WZ-lcBPgFa-a6lkTVVvYw 1 導入jar包(直接復制j

Log4j輸出日誌到kafka

一、新增需要的jar包        去掉springboot專案自帶的日誌jar包,新增kafka和log4j的jar包 <dependency> <groupId>org.springframework.boot</

log4j輸出日誌基本配置

日誌是應用軟體中不可缺少的部分,Apache的開源專案Log4j是一個功能強大的日誌元件,提供方便的日誌記錄。以下是個人經驗,具體請參考Log4j文件指南。 Log4j下載 在apache網站:jakarta.apache.org/log4j 可以免費下載到Log4j最新版本的軟體包。 L

SpringBoot配置log4j輸出日誌

1、SpringBoot日誌輸出 springboot也可以用logback日誌輸出,但之前用了段時間,感覺還是沒有log4j的方便,可以設定每天輸出一個日誌。 2、SpringBoot配置log4j Springboot配置log4j主要包括兩個步驟:第一

tomcat配置log4j輸出日誌從控制檯改到指定檔案

原文網址:http://www.cnblogs.com/stonefeng/p/5767762.html 現象 不知道從哪個版本的tomcat開始,windows版本的tomcat不再包含{tomcat_home}\logs\catalina.out這個檔案,ec

在intellij Idea中使用log4j輸出日誌資訊案例

首先在intellij idea中建立一個工作空間(file->new->project->emptyProject)建立好工作空間後建立java普通專案(在intellij  idea中就是建立modules)使用快捷鍵ctrl+shift+alt+s開啟

SparkStreaming(14):log4j日誌-flume-kafka-SparkStreaming的整合

一、功能實現 模擬log4j的日誌生產,將日誌輸出到flume伺服器。然後,通過flume將日誌資訊輸出到kafka,進而Streaming可以從kafka獲得日誌,並且進行簡單的處理。 二、步驟 1.目的: 使用log4j將日誌輸按照一定格式輸出,並且傳遞給flume伺服器特定埠接

flume-ng 實際應用例子,flume採集log4j日誌

上一篇文章中已經簡單介紹過flume點選開啟連結,這裡就為大家共享一下flume的實際應用: 簡單測試專案: 1、新建java專案結構如下: WriteLog程式碼如下: imp

FLume收集log4j日誌配置實踐

增加pom依賴: <dependency>         <groupId>org.apache.flume.flume-ng-clients</groupId>

基於 Flume+Kafka+Spark Streaming 實現實時監控輸出日誌的報警系統

運用場景:我們機器上每天或者定期都要跑很多工,很多時候任務出現錯誤不能及時發現,導致發現的時候任務已經掛了很久了。  解決方法:基於 Flume+Kafka+Spark Streaming 的框架對這些任務的輸出日誌進行實時監控,當檢測到日誌出現Error的資訊就傳送郵件給

Flume采集Nginx日誌到HDFS

write 1.5 utc 日誌 onf 需要 pat sel source 下載apache-flume-1.7.0-bin.tar.gz,用 tar -zxvf 解壓,在/etc/profile文件中增加設置: export FLUME_HOME=/o

Log4j按級別輸出日誌到不同文件配置

tails lin file true nds 配置文件 http strong 自定義 1、自定義LogFileAppender類,繼承DailyRollingFileAppender,實現Log4j按級別輸出日誌到不同文件。 package com.liying.

[Flume][Kafka]Flume 與 Kakfa結合例子(Kakfa 作為flume 的sink 輸出到 Kafka topic)

over ins log etc avro channels xmx rri pan Flume 與 Kakfa結合例子(Kakfa 作為flume 的sink 輸出到 Kafka topic) 進行準備工作: $sudo mkdir -p /flume/web_s

log4j實現日誌輸出

spa 定義 config prop con 開源 log4j 輸出格式 了解 1.log4j是Apache的一個開源項目,通過使用Log4j,我們可以控制日誌信息輸送的目的地是控制臺、文件、GUI組件,甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等

flume 增量上傳日誌文件到HDFS中

avr 目標 str 增加 目錄名 one 查看 -a 文件 1.采集日誌文件時一個很常見的現象 采集需求:比如業務系統使用log4j生成日誌,日誌內容不斷增加,需要把追加到日誌文件中的數據實時采集到hdfs中。 1.1.根據需求,首先定義一下3大要素: 采集源,即sour

Spring基礎:快速入門spring boot(4):使用slf4j輸出日誌

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!