将Log4J的日志内容发送到agent的source

项目中使用log4j打印的内容同时传输到flume

1、flume端

flume的agent配置内容如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

a1.sources=s1

a1.sinks=k1

a1.channels=c1

a1.sources.s1.channels=c1

a1.sinks.k1.channel=c1

a1.sources.s1.type=avro

a1.sources.s1.bind=vm1

a1.sources.s1.port=41414

a1.sinks.k1.type=logger

a1.channels.c1.type=memory

a1.channels.c1.capacity=1000

a1.channels.c1.transactionCapacity=100

启动这个agent


1

flume-ng agent --conf conf/ --conf-file conf/a1.conf --name a1 -Dflume.root.logger=INFO,console

2、java客户端

log4j.properties


1

2

3

4

5

log4j.rootLogger=INFO,flume

log4j.appender.flume = org.apache.flume.clients.log4jappender.Log4jAppender

log4j.appender.flume.Hostname = 192.168.1.111

log4j.appender.flume.Port = 41414

log4j.appender.flume.UnsafeMode = true

java测试代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

package com.test.flume;

import org.apache.log4j.Logger;

public class Log4jAppenderTest {

    public static void main(String[] args) {

        Logger logger = Logger.getLogger(Log4jAppenderTest.class);

        logger.info("test successful");

        logger.error("error");

        System.out.println("ok");

    }

}

可以参考:http://www.cnblogs.com/lishouguang/category/698715.html

补充:

1、负载均衡的Log4J Appender

修改log4j的配置即可:


1

2

3

log4j.rootLogger=INFO,flume

log4j.appender.flume = org.apache.flume.clients.log4jappender.LoadBalancingLog4jAppender

log4j.appender.flume.Hosts = 192.168.1.111:41414 192.168.1.111:41414

不同的host用空格分隔

2、Log4J Appender也可以使用layout,如下:


1

2

3

4

5

6

7

8

9

10

11

12

log4j.rootLogger=INFO,console,flume

log4j.appender.flume = org.apache.flume.clients.log4jappender.Log4jAppender

log4j.appender.flume.Hostname = 192.168.1.111

log4j.appender.flume.Port = 41414

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,SSS} [%c]-[%p] %m%n

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

 

时间: 2024-08-03 22:59:33

将Log4J的日志内容发送到agent的source的相关文章

Log4J Appender - 将Log4J的日志内容发送到agent的source

项目中使用log4j打印的内容同时传输到flume 1.flume端 flume的agent配置内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a1.sources=s1 a1.sinks=k1 a1.channels=c1 a1.sources.s1.channels=c1 a1.sinks.k1.channel=c1 a1.sources.s1.type=avro a1.sources.s1.bind=vm1 a1.sources.s1.port=4

使用 log4j 打印日志

开发阶段:发现程序的问题,排错 产品阶段:记录程序运行的状况 Maven中配置依赖 通过配置文件输出日志的格式,输送的位置等 一.入门实例 1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下 2.src同级创建并设置log4j.properties ### 设置### log4j.rootLogger = debug,stdout,D,E ### 输出信息到控制抬 ### log4j.appender.stdout = org.apache.log4j.Con

Java 使用Log4J进行日志操作

使用Log4J进行日志操作   Log4J简介   Log4J是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台.文件.CUI组件.NT的事件记录器:还可以控制每一条日志输出格式.此外,通过定义日志信息的级别,能够非常细致地控制日志的输出,最令人感兴趣的是,这些功能可以通过一个配置文件来灵活进行配置,而不需要修改应程序代码. 在应用程序中输出日志有3个目的: l 监视代码中变量的变化情况,把数据周期性记录到文件中供其他应用进行统计分

使用Log4J进行日志操作

简单配置 #指定logger # 配置Logger组件 # 设定Log4j的日志级别(error warn info debug) # 输出目的地(Console, logfile是appender的名字,是自己定义的,后面才赋予具体的含义) log4j.rootLogger=debug, Console, logfile #######################################################################################

springmvc+log4j操作日志记录,详细配置

没有接触过的,先了解一下:log4j教程 部分内容来:log4j教程 感谢! 需要导入包: log包:log4j-12.17.jar 第一步:web.xml配置 <!-- log4j配置,文件路径,因为是跟随项目启动 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.xml</param-value>

关于log4j的日志操作

org.apache.log4j.Logger 详解 概述 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的 :监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作:跟踪代码运行时轨迹,作为日后审计的依据:担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息. 最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类 来封装此类操作,而不是让一系列的打印语句充斥了代码的主体. http://

Log4j写日志文件使用详解

Log4j输出到控制台成功,写入文件失败 - Log4j和commons log的整合 一.今天在使用commongs-logging.jar和log4j.properties来输出系统日志的时候,发现日志能够成功的输出到控制台,但是去不能写到目的文件中,具体的步骤和原因如下: 1. 只在项目中引入commons-logging.jar commons-logging.jar 使用 Log logger = LogFactory.getLogger(XXX.class), 如果有log4j.pr

使用log4j把日志写到mysql数据库

log4j可以支持将log输出到文件,数据库,甚至远程服务器,本教程以mysql数据库为例来讲解: 1.数据库设计 数据库表 表4-1日志表(log) 字段名 字段解释 数据类型 数据 长度 是否为空 是否为主键 是否为外键 id 日志编号 bigint 20 否 是 否 create_time 创建时间 datetime 否 否 否 logs 日志内容 varchar 200 否 否 否 数据库创建: Create database log; 切换数据库: Use log: 创建表: CREA

log4j 将日志记录到数据库

需要以下jar包: ---log4j commons-loggin-1.1.1.jar log4j-1.2.16.jar ---mysql mysql-connector-java-5.1.15-bin.jar ---log4j.properties配置内容 log4j.rootLogger=INFO,DATABASE #JDBC Appender log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.