【发布时间】:2015-08-03 06:56:56
【问题描述】:
我使用 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。该代码只是进行了数据库查询并发送了结果。
那么,我该如何编写代码以记录到一个文件中,而不是在每次调用接口时都创建一个新文件?
希望有人可以帮助我。
【问题讨论】:
-
您使用的日志记录错误。使用配置文件而不是编程方式对其进行配置。现在,每次调用该方法时,您都会向记录器添加一个处理程序。
-
是的。好的。我故意试图获得更多信息。也许您可以从 java-docs 或其他我可以查看的资源中发布链接。但感谢您的反馈。 :)
-
我建议你阅读你正在使用的日志框架的文档。这个问题不是关于网络服务或文件,而是关于你不知道如何正确使用日志框架。
-
很可能您正在寻找此信息:logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/… 请查看超类中可用的日志方法。
-
@Kayaman:那么请尝试帮助我理解它。您是我们的专家,正如我所说,我从教程中获得了 looging-code!那么请给我来源,我可以在其中阅读有关 Java 日志记录的信息,因为我什至不知道日志记录框架是什么。请不要仅仅因为你是专家就当我什么都不知道的样子对待我。
标签: java web-services rest logging jersey-2.0