private boolean openWriter() { if (printWriter == null) { try { FileUtils.createDirs(fileName); if (FileUtils.exists(fileName) && FileUtils.isReadOnly(fileName)) { // read only database: don't log error if the trace file // can't be opened return false; } fileWriter = IOUtils.getWriter(FileUtils.openFileOutputStream(fileName, true)); printWriter = new PrintWriter(fileWriter, true); } catch (Exception e) { logWritingError(e); return false; } } return true; }