in src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java [73:124]
public void actionPerformed(ActionEvent e) {
if (chooser == null) {
chooser = new JFileChooser();
}
chooser.setAcceptAllFileFilterUsed(true);
chooser.setDialogTitle("Save displayed events (XML or .zipped XML)...");
chooser.showSaveDialog(parent);
File selectedFile = chooser.getSelectedFile();
if (selectedFile != null) {
List v = parent.getCurrentLogPanel().getFilteredEvents();
if (((v != null) && (v.size() == 0)) || (v == null)) {
//no events to save
return;
}
// XMLLayout layout = new XMLLayout();
// layout.setProperties(true);
boolean saveAsZip = selectedFile.getName().toLowerCase(Locale.ENGLISH).endsWith(".zip");
Writer writer = null;
try {
if (saveAsZip) {
ZipOutputStream zipOutput = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(selectedFile)));
ZipEntry entry = new ZipEntry(selectedFile.getName().substring(0, selectedFile.getName().length() - ".zip".length()) + ".xml");
zipOutput.putNextEntry(entry);
writer = new OutputStreamWriter(zipOutput);
} else {
writer = new BufferedWriter(new FileWriter(selectedFile));
}
for (Object aV : v) {
LoggingEventWrapper loggingEventWrapper = (LoggingEventWrapper) aV;
// layout.setLocationInfo(loggingEventWrapper.getLoggingEvent().getThrowableInformation() != null);
// writer.write(layout.format(loggingEventWrapper.getLoggingEvent()));
}
} catch (IOException ioe) {
logger.warn("Unable to save file", ioe);
} finally {
if (writer != null) {
try {
writer.flush();
writer.close();
} catch (IOException e1) {
//ignore
}
}
}
}
}