背景

  在分布式系统中,我们有多个web app,这些web app可能分别部署在不同的物理服务器上,并且有各自的日志输出。当生产问题来临时,很多时候都需要去各个日志文件中查找可能的异常,相当耗费人力。日志存储多以文本文件形式存在,当有需求需要对日志进行分析挖掘时,这个处理起来也是诸多不便,而且效率低下。

  为了方便对这些日志进行统一管理和分析,我们可以将日志统一输出到指定的数据库系统中,再由日志分析系统去管理。由于这里是mongodb的篇章,所以主观上以mongodb来做日志数据存储;客观上,一是因为它轻便、简单,与log4j整合方便,对系统的侵入性低。二是因为它与大型的关系型数据库相比有很多优势,比如查询快速bson存储结构利于扩展免费等。

解决方案

整合mongodb和log4j

1、安装mongodb数据库,并在本地启动,默认端口是27017,详细请参考:玩转mongodb(一):初识mongodb

2、新建一个maven(maven版本要求3.0以上)工程,选择maven-archetype-quickstart,工程名:log4j2mongo

3、在pom.xml文件中,添加log4j、log4mongo-java、mongo-java-driver三个依赖。具体代码如下:

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3   <modelVersion>4.0.0</modelVersion>
 4 
 5   <groupId>com.manyjar</groupId>
 6   <artifactId>log4j2mongo</artifactId>
 7   <version>0.0.1-SNAPSHOT</version>
 8   <packaging>jar</packaging>
 9 
10   <name>log4j2mongo</name>
11   <url>http://maven.apache.org</url>
12   
13   <properties>  
14     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
15     <junit.version>3.8.1</junit.version>  
16     <log4j.version>1.2.17</log4j.version>  
17     <log4mongo.version>0.7.4</log4mongo.version>  
18     <mongo-java-driver.version>2.8.0</mongo-java-driver.version>  
19   </properties> 
20 
21   <dependencies>
22     <dependency>  
23       <groupId>junit</groupId>  
24       <artifactId>junit</artifactId>  
25       <version>${junit.version}</version>  
26       <scope>test</scope>  
27     </dependency>  
28   
29       <dependency>  
30           <groupId>log4j</groupId>  
31           <artifactId>log4j</artifactId>  
32           <version>${log4j.version}</version>  
33       </dependency>  
34   
35       <dependency>  
36           <groupId>org.log4mongo</groupId>  
37           <artifactId>log4mongo-java</artifactId>  
38           <version>${log4mongo.version}</version>  
39       </dependency>  
40   
41       <dependency>  
42           <groupId>org.mongodb</groupId>  
43           <artifactId>mongo-java-driver</artifactId>  
44           <version>${mongo-java-driver.version}</version>  
45       </dependency>
46   </dependencies>
47 </project>
pom.xml

相关文章:

  • 2021-06-08
  • 2021-09-14
  • 2021-12-20
  • 2022-12-23
  • 2021-04-10
  • 2022-12-23
  • 2021-06-01
  • 2021-12-11
猜你喜欢
  • 2021-07-26
  • 2021-11-26
  • 2021-06-24
  • 2021-12-09
  • 2022-12-23
  • 2021-09-22
  • 2021-05-12
相关资源
相似解决方案