我创建了下面的JDBC连接,现在使用下面的代码工作正常,我正在使用log4j
,如果任何JDBC连接失败,我想在日志文件中记录,而不是在控制台中显示
public class projectDaoJdbcImpl implements projectDao {
static Logger logger = Logger.getLogger(projectDaoJdbcImpl.class);
@Override
public boolean updateproject(updateentity projectObj) throws Exception {
FileInputStream fis = new FileInputStream("C:\\Users\\kdhandap\\database.properties");
Properties props = new Properties();
props.load(fis);
String JDBC_DRIVER = props.getProperty("Driver");
String USER = props.getProperty("Username");
String PASS = props.getProperty("Password");
String url = "jdbc:mysql://" + projectObj.getServerName() + ":3306/tablename";
boolean result = false;
Connection conn = null;
PreparedStatement stmt = null;
String sql = "UPDATE table SET columnname='" + projectObj.getFlagStatus()
+ "' WHERE projectID IN (" + projectObj.projectId() + ")";
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(url, USER, PASS);
stmt = conn.prepareStatement(sql);
if (stmt.executeUpdate() != 0) {
result = true;
}
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException se) {
se.printStackTrace();
}
finally{
stmt.close();
conn.close();
}
return result;
}
尝试拥有logger.warn状态并在日志文件中捕获并且不确定在哪里处理它
答案 0 :(得分:1)
您可以在 catch :
中执行此操作logger.warn("YourMessage",e);
将在日志文件中记录并打印stracktrace。
来自JavaDoc:
在WARN级别记录CharSequence,包括作为参数传递的Throwable t的堆栈跟踪。
根据您的要求,您可以为其他级别执行此操作。