log4j日志配置jeromq和activemq

来源:互联网 发布:虚拟人声软件 编辑:程序博客网 时间:2024/05/19 03:29

最近项目需要将日志输出到日志服务器,服务器有一套SocketServer,现在项目中需要增加MQ输出

jeromq由于资料较少,在不断琢磨下,终于找出成功的配置,配置如下:

<?xml version="1.0" encoding="UTF-8"?><configuration status="OFF"><appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{1.} - %msg%n" /></Console><JeroMQ name="JeroMQAppender"><PatternLayout pattern="%msg%n" /><Property name="endpoint">tcp://localhost:7878</Property></JeroMQ></appenders><loggers><logger name="com.dt.server" level="INFO" additivity="true"> <appender-ref ref="Console"/></logger><logger name="pubLogger" level="INFO" additivity="false"><appender-ref ref="JeroMQAppender" /></logger><root level="INFO">   <appender-ref ref="Console"/>    </root> </loggers></configuration>


接下来是activeMQ的配置:

<?xml version="1.0" encoding="UTF-8"?><configuration status="warn" name="MyApp" packages="">  <appenders>    <JMS name="jmsQueue" destinationBindingName="logQueue"         factoryBindingName="org.apache.activemq.jndi.ActiveMQInitialContextFactory"         providerURL="tcp://localhost:61616"/>  </appenders>  <loggers>    <root level="all">      <appenderRef ref="jmsQueue"/>    </root>  </loggers></configuration>


配置完成之后,代码中还要使用:

private Logger pubLogger = LogManager.getLogger("pubLogger");//这里的名字是你log4j中配置的logger的name,如果配置到root里,使用无参方法getLogger()便可以
调用你配置的级别输出就好了
jar包版本(我用2.2版本是不行的,用了最新的2.6版本可以)
<dependency>   <groupId>org.apache.logging.log4j</groupId>   <artifactId>log4j-core</artifactId>   <version>2.6</version></dependency><dependency>   <groupId>org.apache.logging.log4j</groupId>   <artifactId>log4j-1.2-api</artifactId>   <version>2.6</version></dependency>

大功告成


原创粉丝点击