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();
}
}
}