private synchronized void writeFile(String s, Throwable t) { try { if (checkSize++ >= CHECK_SIZE_EACH_WRITES) { checkSize = 0; closeWriter(); if (maxFileSize > 0 && FileUtils.size(fileName) > maxFileSize) { String old = fileName + ".old"; FileUtils.delete(old); FileUtils.move(fileName, old); } } if (!openWriter()) { return; } printWriter.println(s); if (t != null) { if (levelFile == ERROR && t instanceof JdbcSQLException) { JdbcSQLException se = (JdbcSQLException) t; int code = se.getErrorCode(); if (ErrorCode.isCommon(code)) { printWriter.println(t.toString()); } else { t.printStackTrace(printWriter); } } else { t.printStackTrace(printWriter); } } printWriter.flush(); if (closed) { closeWriter(); } } catch (Exception e) { logWritingError(e); } }