MongoDB log4j 日志整合
在分布式系统当中,这些服务可能分别部署在不同的服务器上,并且有各自的日志输出。为了方便对这些日志进行统一管理和分析。我们可以将日志统一输出到指定的数据库系统中,而再由日志分析系统去管理。而这个储存日志的数据库目前最适合的还是MongoDB,一是因为它轻便、简单,与log4j整合方便,对系统的侵入性低。二是因为它与大型的关系型数据库相比有不少优势,比如查询快速、储存结构(json)利于扩展、免费等
一、log4j与mongodb整合
1.配置log4j.properties文件,使之整合mongodb:
- log4j.rootLogger=DEBUG, Console, MongoDB
- log4j.appender.Console=org.apache.log4j.ConsoleAppender
- log4j.appender.Console.layout=org.apache.log4j.PatternLayout
- log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c{1}:%L] - %m%n
- log4j.appender.MongoDB=org.log4mongo.MongoDbAppender
- log4j.appender.MongoDB.hostname=192.168.100.205
- log4j.appender.MongoDB.port=27016
- log4j.appender.MongoDB.databaseName=logs_data
- 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客户端查看日志
- > log=db.log.findOne();
- {
- "_id": ObjectId("54f3fd5fe4b04604c6369938"),
- "timestamp": NumberLong("1425276255357"),
- "level": "DEBUG",
- "thread": "http-nio-8080-exec-1970",
- "message": "nativeLoginSuccess ",
- "loggerName": "test.User",
- "fileName": "LmisAuthenticationFilter.java",
- "method": "nativeLoginSuccess",
- "lineNumber": "17",
- "ip": "192.168.100.194",
- "process": "19555@localhost"
- }
日志成功写入mongdb数据库,可以看到在数据库中日志的结构相当清晰。
MongoDB log4j 日志整合的更多相关文章
- log4j日志整合输出(slf4j+commonslog+log4j+jdklogger)
log4j日志整合输出(slf4j+commonslog+log4j+jdklogger) 博客分类: 日志 J2EE项目中,经常会用到很多第三方的开源组件和软件,这些组件都使用各自的日志组件,比 ...
- Log4J日志整合及配置详解
Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松 ...
- springboot学习入门简易版六---springboot2.0整合全局捕获异常及log4j日志(12-13)
使用Aop实现 1创建异常请求 在原有项目基础上,jspController中创建一个可能发生异常的请求: /** * 全局捕获异常测试 * @param i * @return */ @Reques ...
- Spring学习8-SSH+Log4j黄金整合
最下面有log4j的详解及配置步骤 步骤一.导入相应的jar包(具体参看下一篇博文) 步骤二.修改WEB.XML文件,内容如下: <?xml version="1.0" en ...
- Log4J日志配置详解
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- log4j日志-liu
log4j日志级别: http://michales003.iteye.com/blog/1160605 log4j日志配置详解: http://www.cnblogs.com/ITtangtang/ ...
- Log4j 输出的日志中时间比系统时间少了8小时的解决方法,log4j日志文件重复输出
1. 第一个问题:时间少了8小时 Log4j 输出的日志中,时间比系统时间少了8小时,但是 eclipse 控制台输出的日志的时间却是对的. log4j配置如下: #all logger output ...
- 如何在JBoss WildFly 8 自定义log4j日志
最近在 JBoss WildFly 8 下部署 Web应用,自定义的 log4j 日志不工作.console下无日志输出,用System.out.println都不输出内容到console. 原因是J ...
- paip.log4j 日志系统 参数以及最佳实践
paip.log4j 日志系统 参数以及最佳实践 %d{yyyy-MM-dd HH:mm:ss} [thrd:%t] %5p loger:%c (%C.%M.%L) - %m%n 201 ...
随机推荐
- js 中对象的特性
用Object.definedproperties 一次性添加或修改多个属性的特性和值. <script> var obj ={} Object.defineProperties(obj, ...
- express的基本配置项
express自动生成的app.js中有一段代码用app.set和app.use对express进行配置,但这些配置都是什么意思,以及都能做哪些配置并没有展开.这一节就专门来讲express的配置.上 ...
- php设计模式笔记:单例模式
php设计模式笔记:单例模式 意图: 保证一个类仅有一个实例,并且提供一个全局访问点 单例模式有三个特点: 1.一个类只有一个实例2.它必须自行创建这个实例3.必须自行向整个系统提供这个实例 主要实现 ...
- [記錄用]python py2app 檔案批次重新命名
demo.py 主要作用為 將同目錄下 *.mp4 檔案批次重新命名 例如: aaa001.mp4 ---重新命名為--> 001.mp4 aaa002.mp4 ---重新命名為--> 0 ...
- DataGridView出现大红叉--在使用多线程访问数据源时
datagridview 的数据源操作在一个方面里面处理 不要多个地方处理 并且处理的时候要加锁 红叉 应该是多线程操作出现的. try catch 只是起到 捕获异常的功能,但是一旦出现了这种错误 ...
- “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法
最近在项目中,使用EF编程时,在使用泛型类型的过程中,写了一上午,结果生成时,编译不通过,报出如下错误: “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法.如图: 找了好久,终 ...
- Solr4.8.0源码分析(27)之ImplicitDocRouter和CompositeIdRouter
同样在公司工作中发现了一个现象, 1.我用/solr/admin/collections?action=CREATE&name=collection&numShards=3&r ...
- 把内表 itab1 的 n1 到 n2 行内容附加到 itab2 内表中去.
语法:append lines of itab1 [ from n1 ] [ to n2 ] to itab2. DATA:BEGIN OF gt_00 OCCURS 0, l_01 ...
- TF卡的Class4/Class6/Class10
TF卡全称TransFlash卡,即T-Flash又称MicroSD,随设备微型化的需要,TF卡用途越来越广,速度也越来越快,从最初的Class2早已发展到目前主流的Class10,TF卡体积为15m ...
- Altium Designer10 如何导出Gerber文件
版本:AD10.818 目的:Gerber文件导出备忘 http://blog.sina.com.cn/s/blog_9b9a51990100zyyv.html 目录: Step1:设置原点 Step ...