flume+log4j整合到web项目
来源:互联网 发布:软件下载大全 应用 编辑:程序博客网 时间:2024/05/13 18:43
这里的我的maven来构建此项目pom里面内容如下:
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>Flume-master</groupId> <artifactId>Flume-master</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>Flume-master</name> <properties> <jackson.version>1.9.3</jackson.version> <flume.version>1.4.0</flume.version> <tomcat.version>7.0.42</tomcat.version> <jetty.version>8.1.13.v20130916</jetty.version> </properties> <repositories> <repository> <id>oracleReleases</id> <name>Oracle Released Java Packages</name> <url>http://download.oracle.com/maven</url> <layout>default</layout> </repository> <repository> <id>java.net2</id> <name>Repository hosting the jee6 artifacts</name> <url>http://download.java.net/maven/2</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>${jackson.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version>6.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.apache.flume.flume-ng-clients</groupId> <artifactId>flume-ng-log4jappender</artifactId> <version>${flume.version}</version> <exclusions> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> </exclusion> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-util</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>FlumeWebApp</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*</include> </includes> </resource> </resources> <pluginManagement> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <!-- <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> </plugin> --> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>${jetty.version}</version> <configuration> <stopPort>9999</stopPort> <stopKey>stop</stopKey> <webApp> <contextPath>/${project.build.finalName}</contextPath> </webApp> </configuration> </plugin> </plugins> </build> <profiles> <profile> <id>hdfs</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <flume.Port>44444</flume.Port> </properties> </profile> <profile> <id>hbase</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <flume.Port>61616</flume.Port> </properties> </profile> </profiles></project>
这里可能依赖了一些多余的jar,但是最好还是全要了先,
然后再项目的log4j.properties里面添加flume的日志配置
log4j.rootCategory = DEBUG,consolelog4j.appender.console = org.apache.log4j.ConsoleAppenderlog4j.appender.console.layout = org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern = %d{HH:mm:ss} %p %c{1}: %m%nlog4j.logger.com.log.LogFilter = DEBUG,flumelog4j.additivity.com.log.LogFilter = falselog4j.appender.flume = org.apache.flume.clients.log4jappender.Log4jAppenderlog4j.appender.flume.Hostname = localhost.localdomainlog4j.appender.flume.Port = 44444log4j.appender.flume.UnsafeMode = truelog4j.appender.flume.layout = org.apache.log4j.PatternLayoutlog4j.appender.flume.layout.ConversionPattern = %d{mm}\t%d{ss}\t%p\t%c{1}\t%m
然后写一些log4j的日志打印信息,这里我在一个过滤里面写,
package com.log;import java.io.IOException;import java.sql.Date;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.annotation.WebFilter;import javax.servlet.http.HttpServletRequest;import org.apache.log4j.Logger;/** */@WebFilter(value = "/log/*")public class LogFilter implements Filter{ private Logger m_logger = Logger.getLogger(getClass()); @Override public void init(final FilterConfig filterConfig) throws ServletException { } @Override public void doFilter( final ServletRequest servletRequest, final ServletResponse servletResponse, final FilterChain filterChain) throws IOException, ServletException {// m_logger.debug("---------------------------------"+filterChain); System.out.println("--"+filterChain); if (servletRequest instanceof HttpServletRequest) { final HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; final String queryString = httpServletRequest.getQueryString(); final String pathInfo = httpServletRequest.getRequestURI(); System.out.println("---------------------------------"+queryString); if (pathInfo.endsWith("/debug/")) { m_logger.debug(queryString); } else if (pathInfo.endsWith("/error/")) { m_logger.error(queryString); } else if (pathInfo.endsWith("/warn/")) { m_logger.warn(queryString); } else { m_logger.info(queryString); } } filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { }}
然后将项目的war包放到linux的tomcat上,访问项目后,你会看到agent会接收到项目里面的log日志了,这里的启动flume的agent部分就不说了。
详细代码可以参考github的源码flumeMaster
0 0
- flume+log4j整合到web项目
- flume+log4j整合到web项目
- log4j与flume整合配置
- log4j+flume+kafka+strom整合
- flume入门 log4j 输出日志到flume
- log4j输出日志到flume
- log4j输出日志到flume
- 102-整合log4j和flume架构
- extjs6整合到web项目中
- java 项目整合log4j
- maven web项目保存log4j日志到WEB-INF
- flume采集log4j日志到kafka
- flume学习(一):log4j直接输出日志到flume
- flume学习(一):log4j直接输出日志到flume
- flume学习(一):log4j直接输出日志到flume
- flume学习(一):log4j直接输出日志到flume
- flume学习(一):log4j直接输出日志到flume
- flume学习(一):log4j直接输出日志到flume
- 关于ARC
- 静态变量
- Hbase物理模型
- 【白话经典算法系列之十六】“基数排序”之数组中缺失的数字
- iOS--Notification
- flume+log4j整合到web项目
- VC中的字符串表示方法
- Cocos2d-x Box2D debugDraw
- 心脏支架手术后双腿无力 心脏支架手术是否为缺德手术
- repo
- ssh: connect to host xxx.xxx.xxx.xxx port 22:Connection refused(以Ubuntu12.04为例)
- 在owb11.2组件上部署执行owb_demo11.1项目时遇到的错误及其解决
- 仿新浪微博2014之登陆界面三(授权认证Oauth2.0)
- MFC windows资源文件的读取