zoukankan      html  css  js  c++  java
  • 将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

    http://blog.csdn.net/cool112/article/details/48214453

    注意:此方案由于版兼容问题,存在很多坑,请慎重使用

    补充:

    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

     

  • 相关阅读:
    线段树区间最大子段和
    NTT数论变换
    cdq分治·三维偏序问题
    线段树区间开方
    怎么联系$zcy$呢?
    题解 CF375D 【Tree and Queries】
    点分治模板
    Good Bye 2018题解
    Hello 2019题解
    Codeforces Round #525 (Div. 2)题解
  • 原文地址:https://www.cnblogs.com/moonandstar08/p/6284257.html
Copyright © 2011-2022 走看看