首先,具体采用什么技术作为集中式存储方案在99%的应用中应该来说并没有多大区别,最重要的是要定期清理不必要的日志,以及日志格式设计(也可以重写org.log4mongo.MongoDbPatternLayoutAppender.append())的在出现问题时能够方便地查找到所有的上下关联的信息、同时考虑搜索message时的性能。对于分布式系统而言尤其如此,其日志通常跨越多个服务器,确保每个环节的日志能够衔接起来才是日志服务器的关键,纯粹的将日志从分散存储归集到集中式存储除了增加系统不稳定性和成本外,没有任何益处。

因为我们初步采用的mongodb作为存储,故整理如下:

1、安装mongodb,可从https://www.mongodb.com/download-center#community下载对应的tgz版本,并解压;

2、使用nohup mongod --dbpath /data/$MONGODB_HOME/db & 启动mongo服务器;

3、maven增加log4mongo(https://github.com/log4mongo/log4mongo-java)依赖,如下:

        <dependency>
<groupId>org.log4mongo</groupId>
<artifactId>log4mongo-java</artifactId>
<version>0.7.4</version>
</dependency>

4、log4j配置如下:

log4j.rootCategory=INFO, stdout, R, MongoDB
log4j.appender.MongoDB=org.log4mongo.MongoDbAppender
log4j.appender.MongoDB.databaseName=osm-route #建议应用名称
log4j.appender.MongoDB.collectionName=log #随意
log4j.appender.MongoDB.hostname=localhost
log4j.appender.MongoDB.port=27017

如果要配置主从,可按照如下配置:

log4j.appender.MongoDB.hostname=Server01 Server02
log4j.appender.MongoDB.port=27017 27017

根据实际的运行来看,稳定性不是特别好,建议使用logpool

log4j配置目标到mongodb的更多相关文章

  1. 使用log4j配置不同文件输出不同内容

    敲代码中很不注意写日志,虽然明白很重要.今天碰到记录日志,需要根据内容分别输出到不同的文件. 参考几篇文章: 感觉最详细:http://blog.csdn.net/azheng270/article/ ...

  2. log4j 配置

    给java项目添加log4j日志: 1.下载log4j jar包,放入lib目录, 导入项目中 2.创建log4j.properties 文件  目录 Src 3.在需要使用输出的类中使用 priva ...

  3. log4j配置日志文件log4j.appender.R.File相对路径方法

    方法一. 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs ...

  4. paip.Log4j配置不起作用的解决

    paip.Log4j配置不起作用的解决 1.jar包里的log4j配置 看累挂jar,真的有个" webservices-rt.jar\com\sun\org\apache\xml\inte ...

  5. Flume学习 & Kafka & Storm 等 & Log4J 配置

    正在学习这篇文章: http://blog.csdn.net/ymh198816/article/details/51998085 和工作中接触的电商.订单.分析,可以结合起来. 开宗明义,这幅图片: ...

  6. Log4j配置全说明

    转载:http://zhangjunhd.blog.51cto.com/113473/21014/ 1.Log4j简介 Log4j是Apache的一个开源项目,它允许开发者以任意间隔输出日志信息.Lo ...

  7. 简要log4j配置

    若排版紊乱可查看我的个人博客原文地址 1. 配置效果 下面的log4j日志配置最终能达到的效果是对于全局日志可以根据级别输入到对应级别的日志文件中,注意低级别的日志文件会同时包含高级别的日志信息,例如 ...

  8. log4j日志输出到日志文件中和控制台中 +log4j配置详解

    1.引入log4j的jar包 https://mvnrepository.com/,可以找到log4j的jar和依赖. 2.创建log4j.properties,并配置log4j #设置日志的级别 , ...

  9. 项目重构之数据源配置与优化:log4j 配置数据库连接池Druid,并实现日志存储到数据库

    作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 交流QQ群:[编程之美 365234583] ...

随机推荐

  1. cocos JS for循环让精灵从屏幕中间往两边排列散开

    //this.ShowImg[i] 需要排列什么就push加进数组里面,一个for循环计算即可 var size = this.ShowImg.length;var count = size; for ...

  2. 自定django登录跳转限制

    django自定义一个登录跳转限制: 解释: 不登录不让跳转到其它页面. 原理: 做一个装饰器,在访问路由时,先进行判断,登录session是否存在,如果存在则跳转,不存在则返回到登录页面.或者你可以 ...

  3. vue中axios的封装

    第一步还是先下载axios cnpm install axios -S 第二步建立一个htttp.js import axios from 'axios'; import { Message } fr ...

  4. 总结docker常用命令

    docker 1docker pull 镜像 2docker ps -a 查看所有容器docker image 查看镜像 3docker rm 容器id 删除容器 docker rm 一次可以指定多个 ...

  5. div上下左右居中方法

    方法一:在浏览器中只有一个div的情况 { position:fixed; position:fixed; ; ; ; ; margin:auto; } 方法一 方法二:一个父元素div和一个已知宽度 ...

  6. wordpress学习(二)

    学习如何使用wpdb<br/> <? global $wpdb; //声明wpdb类 $wpdb->show_errors(); //1.学会向数据库中数据表添加一行数据(增) ...

  7. codeforces 957 A. Tritonic Iridescence

    题意: 给出一个字符串,要求任意两个相同的字母不能相同,问这个字符串是否能有两种或者两种以上的表现形式. 思路: 简单判断一下: 1.问号在端点: 2.连续两个问号或者以上: 3.一个问号两端的字母是 ...

  8. Hive使用pmod函数实现dayofweek函数功能

    dayofweek在hive2.2.0开始支持,低版本的hive原生未提供dayofweek函数(获取一个日期是星期几的方法),所以只有我们自己编写udf函数提供,udf就不说了,在这里给出了一个使用 ...

  9. SQL 语法速记

    ----------------------------------DML(数据操作语言)---------------------------------- -- 一.INSERT VALUES语句 ...

  10. Linux Centos下查看cpu、磁盘、内存使用情况,关闭MySQL日志

    Linux Centos下查看cpu.磁盘.内存使用情况,关闭MySQL日志 lsblk 查看分区和磁盘df -h 查看空间使用情况fdisk -l 分区工具查看分区信息cfdisk /dev/sda ...