linux activemq 日志,log4j通过ActiveMQ远程记录日志设计配置
log4j通过activeMQ远程记录日志设计配置
一、安装ActiveMQ
首先去http://activemq.apache.org/download.html 下载较新版本5.4.2release, 解压
apache-activemq-5.4.2-bin.zip (或者apache-activemq-5.4.2-bin.tar.gz)目录如下:
+bin (windows下面的bat和unix/linux下面的sh)
+conf (activeMQ配置目录,包含最基本的activeMQ配置文件)
+data (默认是空的)
+docs (相关文档)
+example (几个例子)
+lib (activemMQ使用到的lib)
连接安全配置:
将如下配置
Copy至conf/activemq.xml中,放在
的下面(这是简单的用户名、密码的认证方式)!
用户名、密码的可在conf/credentials.properties中配置
可以使用bin\activemq.bat(activemq) 启动,如果一切顺利,你就会看见类似下面的信息:
Listening for connections at: tcp://127.0.0.1:61616
二、测试安装的ActiveMQ
由于ActiveMQ是一个独立的jms provider,所以我们不需要其他任何第三方服务器就可以马上做我们的测试了.编译example/src目录下面的程序 ProducerTool/ConsumerTool 是JMS参考里面提到的典型应用,Producer产生消息,Consumer消费消息,而且这个例子还可以加入参数帮助你测试刚才启动的本地 ActiveMQ或者是远程的ActiveMQ
ProducerTool broker的地址,默认的是tcp://localhost:61616 [true|flase] 是否使用topic,默认是false [subject] subject的名字,默认是TOOL.DEFAULT [durabl] 是否持久化消息,默认是false [messagecount] 发送消息数量,默认是10 [messagesize] 消息长度,默认是255 [clientID] durable为true的时候,需要配置clientID [timeToLive] 消息存活时间 [sleepTime] 发送消息中间的休眠时间 [transacte] 是否采用事务 ConsumerTool broker的地址,默认的是tcp://localhost:61616 [true|flase] 是否使用topic,默认是false [subject] subject的名字,默认是TOOL.DEFAULT [durabl] 是否持久化消息,默认是false [maxiumMessages] 接受最大消息数量,0表示不限制 [clientID] durable为true的时候,需要配置clientID [transacte] 是否采用事务 [sleepTime] 接受消息中间的休眠时间,默认是0,onMeesage方法不休眠 [receiveTimeOut] 接受超时 我们可以这样使用:
先启动activeMQ,再打开两个命令窗口,都进入D:\activemq\example\src,一个运行:ant consumer,一个运行:ant producer,如果成功发送/接收了消息就OK了。
ActiveMQ5版本默认启动时,启动了内置的jetty服务器,提供一个demo应用和用于监控ActiveMQ的admin应用。
admin:http://127.0.0.1:8161/admin/
demo:http://127.0.0.1:8161/demo/
三、在工程中导入支持activeMQ的jar包
在pom.xml文件中新增activeMQ依赖包。
org.apache.activemq.toolingmaven-activemq-memtest-plugin5.4.2
四、配置log4j文件,使其可以通过activeMQ向远程JMS服务发送日志
在log4j.xml日志文件中增加JMSAppender 。
value="ConnectionFactory" />
五、配置jndi和初始化属性文件
在src/resouce目录下新增jndi.properties文件
##发送端和接收端可以通过EZRD.logTopic这个名字建立发送和接收消息 topic.EZRD.logTopic=EZRD.logTopic
在dbconfig目录下新增jms.properties属性文件
#JMS服务地址 jms_provider_url=tcp://localhost:61616
#用户名
jms_userName=system
#密码
jms_password=manager
#主题名
jms_topic_binding_name=EZRD.kk
#日志存放目录 jms_ezrd_logs=D:\\ezrdlogs
六、启动接收端主程序JmsLogReceiver
java JmsLogReceiver
JmsLogReceiver.java
七、查看生成的日志文件,每天产生一个日志文件。
在D:\\ezrdlogs 目录下生成当天的日志文件,如:
2011-08-18.log
注:使用jms需要注意的问题
1、 在activemq.xml配置文件中可以修改amq的内存限制,如:
这里memoryLimit="100mb"表示topic的内存限制为100M,producerFlowControl="false"表示关闭流量控制,如果不关闭流量控制,在消息量发生累积时,amq会主动控制流量,减少消息的生产。
2、 不要频繁的建立和关闭连接
JMS使用长连接方式,一个程序,只要和JMS服务器保持一个连接就可以了,不要频繁的建立和关闭连接。频繁的建立和关闭连接,对程序的性能影响还是很大的。这一点和jdbc还是不太一样的。
3、 Connection的start()和stop()方法代价很高
JMS的Connection的start()和stop()方法代价很高,不能经常调用。我们试用的时候,写了个jms的connection pool,每次将connection取出pool时调用start()方法,归还时调用stop()方法,然而后来用jprofiler发现,一般的cpu时间都耗在了这两个方法上。
4、 start()后才能收消息
Connection的start()方法调用后,才能收到jms消息。如果不调用这个方法,能发出消息,但是一直收不到消息。不知道其它的jms服务器也是这样。
5、 显式关闭Session
如果忘记了最后关闭Connection或Session对象,都会导致内存泄漏。这个在我测试的时候也发现了。本来以为关闭了Connection,由这个Connection生成的Session也会被自动关闭,结果并非如此,Session并没有关闭,导致内存泄漏。所以一定要显式的关闭Connection和Session。
6、 对Session做对象池
对Session做对象池,而不是Connection。Session也是昂贵的对象,每次使用都新建和关闭,代价也非常高。而且后来我们发现,原来Connection是线程安全的,而Session不是,所以后来改成了对Session做对象池,而只保留一个Connection。
linux activemq 日志,log4j通过ActiveMQ远程记录日志设计配置相关推荐
- linux kdump日志在哪里,kdump启动失败如何配置
本案环境:[root@bright ~]# cat /etc/redhat-release && uname -r CentOS release 6.6 (Final) 2.6.32- ...
- Spring学习总结(13)——Spring+Log4j+ActiveMQ实现远程记录日志
应用场景 随着项目的逐渐扩大,日志的增加也变得更快.Log4j是常用的日志记录工具,在有些时候,我们可能需要将Log4j的日志发送到专门用于记录日志的远程服务器,特别是对于稍微大一点的应用.这么做的优 ...
- linux activemq 打印日志,Log4j.xml配置日志按级别过滤并将指定级别的日志发送到ActiveMQ...
目标:将debug,info级别的日志输出到本地文件,将warn,error级别的日志输出到ActiveMQ. 说明:本文还是使用之前的两个项目:Product和Logging. 经过一番搜索后,发现 ...
- Log4j.xml配置日志按级别过滤并将指定级别的日志发送到ActiveMQ
为什么80%的码农都做不了架构师?>>> 在之前的一篇博客<Spring+Log4j+ActiveMQ实现远程记录日志--实战+分析>的评论中,有同学提到这种方式应 ...
- log4j linux如果日志目录不存在,Java日志库学习笔记
(未完成,待修改) 一.安装Log4j log4j的库文件可以在官方网站下载: 二.log4j.properties的目录搜索规则 在src/目录下创建一个log4j.properties文件,即LC ...
- log4j中将SocketAppender将日志内容发送到远程服务器
1.服务端配置 1)服务端配置文件log4j-server.properties #Define a narrow log category. A category like debug will p ...
- linux C++ 环境下的ActiveMQ学习
ActiveMQ 1.概述 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Pr ...
- activemq主从配置_使用ActiveMQ –具有故障转移协议的“主/从”配置
activemq主从配置 介绍 ActiveMQ代理往往是企业中消息传递基础结构的核心部分. 此消息传递基础结构的高度可用性和可伸缩性至关重要. 请阅读此链接 ,以了解有关创建经纪人网络以支持各种用例 ...
- 使用ActiveMQ –具有故障转移协议的“主/从”配置
介绍 ActiveMQ代理往往是企业中消息传递基础结构的核心部分. 此消息传递基础结构的高度可用性和可伸缩性至关重要. 请阅读此链接 ,以了解有关创建经纪人网络以支持各种用例的更多信息. Active ...
最新文章
- 2、String相关问题
- (详细)Hibernate框架的搭建,Hibernate的CRUD操作(一)
- 【Linux系统编程】 文件描述符的复制:dup()和dup2()
- echarts 堆叠柱状图3d效果_【python可视化】:pyecharts:柱形图、堆叠条形图、极坐标堆叠柱形图、极坐标堆叠分类条形图...
- WPF 右下角弹窗的简单实现
- C++ —— C++引用
- tgc 什么意思 tgt_TGT的完整形式是什么?
- OAuth 2.0——授权服务开发笔记(一)
- Vue.JS学习笔记
- 成功解决生意参谋中transit-id和加密数据date
- 织梦php集成环境安装包,常用PHP运行环境一键安装包
- JS修改链接地址实现页面动态跳转的方法
- js 拉勾网效果_js仿拉勾网首页穿墙广告效果
- ThinkPad T420 clover引导安装黑苹果(x220和T520也适用)
- LEAK: ByteBuf.release() was not called before it‘s garbage-collected
- oracle查询谁修改了数据ip,查询oracle特定表修改的用户及IP信息
- 标签无效 /zabbix_export/date: YYYY-MM-DDThh:mm:ssZ 预计。
- 关于app的闪退问题
- 盘点来自工业界的GPU共享方案
- linux 大牛博客,大牛