簡體   English   中英

如何將JAVA Web服務記錄到文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM