package org.infosec.ismp.manager.syslog; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.ObjectMessage; import org.infosec.ismp.model.syslog.RawSyslog; import org.infosec.ismp.util.ThreadCategory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * jms接收器的处理器,负责接收jms server中存储的raw syslog,然后将日志转发给日志管理器 * * @author lianglin * */ @Component public class RawSyslogReceiver implements MessageListener { private SyslogManager m_syslogManager; @Override public void onMessage(Message msg) { ObjectMessage message = (ObjectMessage) msg; try { RawSyslog syslog = (RawSyslog) message.getObject(); if(log().isDebugEnabled()){ log().debug("从JMS接收的日志内容是: "+syslog); } // 将syslog转发给syslog日志管理器 m_syslogManager.addRawSyslog(syslog); } catch (JMSException e) { log().warn("从JMS接收日志出现异常", e); } catch (Throwable t) { log().warn("接收日志出现异常", t); } } @Autowired(required=true) public void setSyslogManager(SyslogManager syslogManager) { m_syslogManager = syslogManager; } ThreadCategory log() { return ThreadCategory.getInstance(getClass()); } }