// Create a Log4J log file with a monthly rolling appender and populate // it with information from the dataset in a csv format so the log file // can be opened and processed with a spreadsheet. private void makeTrialLogEntry(String service, DicomObject dicomObject) { if (!TrialConfig.log()) return; if (processorLog == null) { try { processorLog = Logger.getLogger("trial"); processorLog.setAdditivity(false); PatternLayout layout = new PatternLayout("%d{yyyy-MM-dd},%d{HH:mm:ss},%m%n"); File logs = new File(TrialConfig.basepath + TrialConfig.logDirectory); logs.mkdirs(); DailyRollingFileAppender appender = new DailyRollingFileAppender( layout, TrialConfig.basepath + TrialConfig.logDirectory + File.separator + TrialConfig.serviceName + ".csv", "'.'yyyy-MM"); processorLog.addAppender(appender); processorLog.setLevel((Level) Level.ALL); } catch (Exception e) { logger.warn("Unable to instantiate a trial logger"); processorLog = null; return; } } processorLog.info( service + "," + dicomObject.getPatientName() + "," + dicomObject.getPatientID() + "," + dicomObject.getModality() + "," + dicomObject.getSeriesNumber() + "," + dicomObject.getAcquisitionNumber() + "," + dicomObject.getInstanceNumber()); }