[英]How to log JAVA Webservice to a file
我使用JAX-RS(Jersey 2.0)構建服務,並試圖實現一個記錄器,該記錄器記錄諸如錯誤或請求結果之類的事件。 工作正常! :)不幸的是,每次調用服務時它都會創建一個文件,但是最好將其寫入一個文件中。
看一下我的代碼(這只是相關部分):
package webservice.feedbacks;
import java.io.IOException;
// imports
@Path("webservice")
public class DeleteFeedback {
Logger logger = Logger.getLogger("Feedbacklogger");
@POST
@Path("/deleteFeedback")
@Consumes(MediaType.APPLICATION_JSON + ";charset=UTF-8")
@Produces("text/plain")
public String setFeedbacks(String incoming){
FileHandler fh;
JSONObject jsonObj = new JSONObject(incoming);
try {
fh = new FileHandler("D:/Eclipse-Projekte/SmartliveService/logs/DeleteFeedback_log.log");
logger.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
logger.info("----- BEGINN DES PROTOKOLLS -----");
} catch (SecurityException | IOException e) {e.getMessage();}
int id = jsonObj.getInt("id");
String result = executeQuery(id);
logger.info("----- ENDE DES PROTOKOLLS -----");
return result;
}
private String executeQuery(int id) {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {logger.info("Treiberfehler: " + e.getMessage());}
Connection con = null;
Statement stmt = null;
try{...} catch(SQLException e){
logger.info("SQL-Fehler: " + e.getMessage());
return "error";
} finally {
try { if (stmt != null) stmt.close();} catch (Exception e) {logger.info("Das Statement konnte nicht geschlossen werden: " + e.getMessage());};
try { if (con != null) con.close();} catch (Exception e) {logger.info("Die Verbindung konnte nicht geschlossen werden: " + e.getMessage());};
}
return "success";
}
}}
如您所見,我創建了一個FileHandler
。 我是從教程中獲得的,因為我不像幾年前那樣對JAVA熟悉。 該代碼只是進行了數據庫查詢並發送了結果。
因此,我該如何編寫將其記錄到一個文件中的代碼,而不是每次調用該接口時都創建一個新文件?
希望可以有人幫幫我。
您不應在每次調用方法時都初始化文件處理程序。 也許您應該使其靜態或在構造函數中對其進行初始化。 另請參閱附錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.