美文网首页
flume采集应用日志信息

flume采集应用日志信息

作者: 吾为天帝乎 | 来源:发表于2018-11-14 21:21 被阅读14次


import org.apache.log4j.Logger;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet(name = "LoggerServlet",urlPatterns = "/LoggerServlet")
public class LoggerServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int count=(int)request.getSession().getAttribute("count");
        request.setCharacterEncoding("utf-8");
        String userName =request.getParameter("userName");
        Logger logger=Logger.getRootLogger();
        System.out.println(userName+"_"+count);//控制台输出 输出日志在catalina中

      logger.info(userName+"_"+count); //新的日志文件

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request,response);
    }
}

<%--
  Created by IntelliJ IDEA.
  User: wxw
  Date: 2018-11-14
  Time: 下午 8:00
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;
%>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Title</title>
    <script type="text/javascript">
        var basePath = '<%= basePath%>';
    </script>
</head>
<body>
<% session.setAttribute("count",1);%>
<
<form action="<%=basePath%>/LoggerServlet" method="post">
    <input type="text" name="userName"/>
    <br/>
    <input type="submit" value="提交">

</form>
</body>
</html>

# 全局配置 -> DEBUG(调试) -> INFO(信息) ->ERROR(错误)
log4j.rootLogger=DEBUG,stdout,file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# 日志格式 p:日志级别 t:线程 m:信息 n:换行
log4j.appender.stdout.layout.ConversionPattern=%m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/home/hadoop/webapp.log
log4j.appender.file.append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout

Logger logger=Logger.getRootLogger();

然后将war 包传到tomcat 的webapp 中换成ROOT.war 之后开启tomcat ,会生成ROOT目录

logo4j中

全局配置 -> DEBUG(调试) -> INFO(信息) ->ERROR(错误)
DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度,明白这一点很重要,Log4j有一个规则:只输出级别不低于设定级别的日志信息,假设Loggers级别设定为INFO,则INFO、WARN、ERROR和FATAL级别的日志信息都会输出,而级别比INFO低的DEBUG则不会输出。

log4j.rootLogger=DEBUG,stdout,file

appende 允许把日志输出到不同的地方如控制台(Console)、文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等。

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

layout有时用户希望根据自己的喜好格式化自己的日志输出
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)

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

日志格式 p:日志级别 t:线程 m:信息 n:换行

log4j.appender.stdout.layout.ConversionPattern=%m%n

输出到文件

log4j.appender.file=org.apache.log4j.FileAppender

输出文件路径
log4j.appender.file.File=/home/hadoop/webapp.log

文件从最后面添加
log4j.appender.file.append=true

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


linux 的网页能打开后 配置flume 监控文件
需要提前创建log 文件

cd $FLUME_HOME/conf
touch file-memory-logger.conf
vi file-memory-logger.conf
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source 
a1.sources.r1.type = exec
a1.sources.r1.command = tail -f /home/hadoop/webapp.log

# Describe the sink
a1.sinks.k1.type = logger

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

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

当然也可以监控tomcat 下的logs 的catalina.out 但是这个文件信息杂 ,直接用log4j 里面生成的文件好,只显示 logger.info(userName+"_"+count); 生成的字段

相关文章

  • flume采集应用日志信息

    Logger logger=Logger.getRootLogger(); 然后将war 包传到tomcat 的w...

  • Flume架构与实践

    Flume架构与实践 Flume是一款在线数据采集的系统,典型的应用场景是作为数据的总线,在线的进行日志的采集、分...

  • Flume

    日志采集框架Flume 1 Flume介绍 1.概述 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和...

  • Hdoop入门之Flume

    概要 Flume是一个高可用的,分布式的实时的日志采集系统。Flume分为三个组件,Ource组件,负责信息的采集...

  • 【Flume简介】

    1 介绍 flume是实时日志采集系统, 使用场景:监控目录的日志信息,控制台输入信息,端口信息,http发送的信...

  • Flume基础学习

    Flume是一款非常优秀的日志采集工具。支持多种形式的日志采集,作为apache的顶级开源项目,Flume再大数据...

  • Flume的安装与使用详解

    Flume的简单介绍Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件...

  • (一)Flume的安装

    Flume的简单介绍Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件...

  • Flume的安装与使用详解

    Flume的简单介绍Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件...

  • Flume的安装与使用详解

    Flume的简单介绍Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件...

网友评论

      本文标题:flume采集应用日志信息

      本文链接:https://www.haomeiwen.com/subject/dsjsfqtx.html