我想创建一个Receiver
来收集和管理 JMSAppender 发送的日志。现在它只工作 30 秒(Thread.sleep(30000);
),但我需要它等待来自系统的所有日志。pw.close();
如果我需要关闭以查看文件中的所有日志,我该怎么做?从文件中,我将日志加载到日志查看器,我想实时查看它们。
public class Receiver implements MessageListener {
PrintWriter pw = new PrintWriter("result.log");
public Receiver() throws Exception {
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection conn = factory.createConnection();
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
conn.start();
MessageConsumer consumer = sess.createConsumer(sess.createTopic("logTopic"));
consumer.setMessageListener(this);
Thread.sleep(30000);
consumer.close();
sess.close();
conn.close();
pw.close();
System.exit(1);
}
public static void main(String[] args) throws Exception {
new Receiver();
}
public void onMessage(Message message) {
try {
LoggingEvent event = (LoggingEvent) ((ActiveMQObjectMessage) message).getObject();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");
String nowAsString = df.format(new Date(event.getTimeStamp()));
System.out.println("zapisujemy do pliku");
pw.println("["+ nowAsString + "]" +
" [" + event.getThreadName()+"]" +
" ["+ event.getLoggerName() + "]" +
" ["+ event.getMessage()+"]");
} catch (Exception e) {
e.printStackTrace();
}
}
}