在分布式系统当中,这些服务可能分别部署在不同的服务器上,并且有各自的日志输出。为了方便对这些日志进行统一管理和分析。我们可以将日志统一输出到指定的数据库系统中,而再由日志分析系统去管理。而这个储存日志的数据库目前最适合的还是MongoDB,一是因为它轻便、简单,与log4j整合方便,对系统的侵入性低。二是因为它与大型的关系型数据库相比有不少优势,比如查询快速、储存结构(json)利于扩展、免费等

一、log4j与mongodb整合 

1.配置log4j.properties文件,使之整合mongodb:

  1. log4j.rootLogger=DEBUG, Console, MongoDB
  2. log4j.appender.Console=org.apache.log4j.ConsoleAppender
  3. log4j.appender.Console.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c{1}:%L] - %m%n
  5. log4j.appender.MongoDB=org.log4mongo.MongoDbAppender
  6. log4j.appender.MongoDB.hostname=192.168.100.205
  7. log4j.appender.MongoDB.port=27016
  8. log4j.appender.MongoDB.databaseName=logs_data
  9. log4j.appender.MongoDB.collectionName=sys_log

2.在应用程序中使用log4j添加日志

//创建logger对象

private static final Logger LOGGER = LoggerFactory.getLogger(JedisTest.class);

LOGGER.debug("调用redisCluster开始");

LOGGER.info("创建一个JedisCluster对象");

LOGGER.debug("设置key1的值为1000");

LOGGER.debug("从Redis中取key1的值");

LOGGER.error("系统发送异常", e);

3.可以通过mongodb客户端查看日志

  1. > log=db.log.findOne();
  2. {
  3. "_id": ObjectId("54f3fd5fe4b04604c6369938"),
  4. "timestamp": NumberLong("1425276255357"),
  5. "level": "DEBUG",
  6. "thread": "http-nio-8080-exec-1970",
  7. "message": "nativeLoginSuccess ",
  8. "loggerName": "test.User",
  9. "fileName": "LmisAuthenticationFilter.java",
  10. "method": "nativeLoginSuccess",
  11. "lineNumber": "17",
  12. "ip": "192.168.100.194",
  13. "process": "19555@localhost"
  14. }

日志成功写入mongdb数据库,可以看到在数据库中日志的结构相当清晰。

MongoDB log4j 日志整合的更多相关文章

  1. log4j日志整合输出(slf4j+commonslog+log4j+jdklogger)

    log4j日志整合输出(slf4j+commonslog+log4j+jdklogger) 博客分类: 日志   J2EE项目中,经常会用到很多第三方的开源组件和软件,这些组件都使用各自的日志组件,比 ...

  2. Log4J日志整合及配置详解

    Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松 ...

  3. springboot学习入门简易版六---springboot2.0整合全局捕获异常及log4j日志(12-13)

    使用Aop实现 1创建异常请求 在原有项目基础上,jspController中创建一个可能发生异常的请求: /** * 全局捕获异常测试 * @param i * @return */ @Reques ...

  4. Spring学习8-SSH+Log4j黄金整合

    最下面有log4j的详解及配置步骤 步骤一.导入相应的jar包(具体参看下一篇博文) 步骤二.修改WEB.XML文件,内容如下: <?xml version="1.0" en ...

  5. Log4J日志配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  6. log4j日志-liu

    log4j日志级别: http://michales003.iteye.com/blog/1160605 log4j日志配置详解: http://www.cnblogs.com/ITtangtang/ ...

  7. Log4j 输出的日志中时间比系统时间少了8小时的解决方法,log4j日志文件重复输出

    1. 第一个问题:时间少了8小时 Log4j 输出的日志中,时间比系统时间少了8小时,但是 eclipse 控制台输出的日志的时间却是对的. log4j配置如下: #all logger output ...

  8. 如何在JBoss WildFly 8 自定义log4j日志

    最近在 JBoss WildFly 8 下部署 Web应用,自定义的 log4j 日志不工作.console下无日志输出,用System.out.println都不输出内容到console. 原因是J ...

  9. paip.log4j 日志系统 参数以及最佳实践

    paip.log4j 日志系统 参数以及最佳实践   %d{yyyy-MM-dd HH:mm:ss} [thrd:%t] %5p   loger:%c   (%C.%M.%L)  - %m%n 201 ...

随机推荐

  1. php中引用符号(&amp;)的使用详解

    php的引用就是在变量或者函数.对象等前面加上&符号,在PHP 中引用的意思是:不同的名字访问同一个变量内容,下面介绍如何使用PHP的引用 与C语言中的指针是有差别的.C语言中的指针里面存储的 ...

  2. PHP实现多web服务器共享SESSION数据-session数据写入mysql数据库

    http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2010/0822/5276.html http://hi.baidu.com/lei_com/ ...

  3. 在ECSHOP首页今日特价(促销商品)增加倒计时效果

    看到不少朋友在找首页特价商品倒计时的修改方法,写了这篇文章希望能帮到有此需要的朋友们 1.首先修改程序部分 打开includes/lib_goods.php 找到get_promote_goods() ...

  4. ul动态增加li

    --> aaa bbb <%@ page language="java" import="java.util.*" pageEncoding=&qu ...

  5. Dev表格导出工具类 z

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace xSof ...

  6. C# 使用Salt+Hash来为密码加密

    (一) 为什么要用哈希函数来加密密码 如果你需要保存密码(比如网站用户的密码),你要考虑如何保护这些密码数据,象下面那样直接将密码写入数据库中是极不安全的,因为任何可以打开数据库的人,都将可以直接看到 ...

  7. html 5 中的 6位 十六进制颜色码 代表的意思

    人的眼睛看到的颜色有两种: ⒈ 一种是发光体发出的颜色,比如计算机显示器屏幕显示的颜色: ⒉ 另一种是物体本身不发光,而是反射的光产生 十六进制颜色码 的颜色,比如看报纸和杂志上的颜色. 我们又知道任 ...

  8. Android 制作一个网页源代码浏览器(HttpURLConnection)

    package com.wuyou.htmlcodeviewer; import android.os.Bundle; import android.os.Handler; import androi ...

  9. 李洪强漫谈iOS开发[C语言-031]-逻辑短路

  10. Oracle - Unprocessed Material

    create table kol.MTL_MATERIAL_TRANS_TMP_140325 as select * from MTL_MATERIAL_TRANSACTIONS_TEMP ; upd ...